Ошибка полномочий, пытающаяся вывести Redis к Бродячей совместно используемой папке

Имейте я заставил некоторые сумасшедшие запросы для Вас использовать. Я записал эти два года назад, и все еще используйте их сегодня. Дайте им Попытку!!!

Вот запрос для подведения всех данных через все механизмы устройства хранения данных

SELECT IFNULL(B.engine,'Total') "Storage Engine",
CONCAT(LPAD(REPLACE(FORMAT(B.DSize/POWER(1024,pw),3),',',''),17,' '),' ',
SUBSTR(' KMGTP',pw+1,1),'B') "Data Size", CONCAT(LPAD(REPLACE(FORMAT(
B.ISize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),
'B') "Index Size", CONCAT(LPAD(REPLACE(FORMAT(B.TSize/POWER(1024,pw),3),',',''),
17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Table Size"
FROM (SELECT engine,SUM(data_length) DSize,SUM(index_length) ISize,
SUM(data_length+index_length) TSize FROM information_schema.tables
WHERE table_schema NOT IN ('mysql','information_schema') AND
engine IS NOT NULL GROUP BY engine WITH ROLLUP) B,
(SELECT 3 pw) A ORDER BY TSize;

Вот запрос для подведения всех данных через все базы данных

SELECT DBName,CONCAT(LPAD(FORMAT(SDSize/POWER(1024,pw),3),17,' '),' ',
SUBSTR(' KMGTP',pw+1,1),'B') "Data Size",CONCAT(LPAD(FORMAT(SXSize/
POWER(1024,pw),3),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Index Size",
CONCAT(LPAD(FORMAT(STSize/POWER(1024,pw),3),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),
'B') "Total Size" FROM (SELECT IFNULL(DB,'All Databases') DBName,SUM(DSize) SDSize,
SUM(XSize) SXSize,SUM(TSize) STSize FROM (SELECT table_schema DB,
data_length DSize,index_length XSize,data_length+index_length TSize
FROM information_schema.tables WHERE table_schema NOT IN
('mysql','information_schema')) AAA GROUP BY DB WITH ROLLUP) AA,
(SELECT 3 pw) BB ORDER BY (SDSize+SXSize);

Вот запрос для подведения всех данных через все базы данных, сгруппированные механизмом устройства хранения данных

SELECT Statistic,DataSize "Data Size",IndexSize "Index Size",TableSize "Table Size"
FROM (SELECT IF(ISNULL(table_schema)=1,10,0) schema_score,
IF(ISNULL(engine)=1,10,0) engine_score,IF(ISNULL(table_schema)=1,
'ZZZZZZZZZZZZZZZZ',table_schema) schemaname,
IF(ISNULL(B.table_schema)+ISNULL(B.engine)=2,"Storage for All Databases",
IF(ISNULL(B.table_schema)+ISNULL(B.engine)=1,
CONCAT("Storage for ",B.table_schema),
CONCAT(B.engine," Tables for ",B.table_schema))) Statistic,
CONCAT(LPAD(REPLACE(FORMAT(B.DSize/POWER(1024,pw),3),',',''),17,' '),
' ',SUBSTR(' KMGTP',pw+1,1),'B') DataSize,CONCAT(LPAD(REPLACE(
FORMAT(B.ISize/POWER(1024,pw),3),',',''),17,' '),' ',
SUBSTR(' KMGTP',pw+1,1),'B') IndexSize,CONCAT(LPAD(REPLACE(FORMAT(B.TSize/
POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') TableSize
FROM (SELECT table_schema,engine,SUM(data_length) DSize,SUM(index_length) ISize,
SUM(data_length+index_length) TSize FROM information_schema.tables
WHERE table_schema NOT IN ('mysql','information_schema') AND
engine IS NOT NULL GROUP BY table_schema,engine WITH ROLLUP) B,
(SELECT 3 pw) A) AA ORDER BY schemaname,schema_score,engine_score;

ПРОТЕСТ: Вы заметите, что в заключительной части всех этих запросов встроенный ВЫБОР, который похож на это: (SELECT 3 pw)

Номер 3 вызывает отчет выйти в GigaBytes.
На самом деле вот список чисел и единицы отчета, который он использует:

  • (SELECT 0 pw) Отчеты в байтах
  • (SELECT 1 pw) Отчеты в килобайтах
  • (SELECT 2 pw) Отчеты в мегабайтах
  • (SELECT 3 pw) Отчеты в гигабайтах
  • (SELECT 4 pw) Отчеты в терабайтах
  • (SELECT 5 pw) Отчеты в Петабайтах (я никогда не использовал эту установку, но это там в случае, если Вы достигаете того числа когда-нибудь),

Наслаждайтесь!!!

0
задан 24 September 2013 в 14:13
2 ответа

В Ubuntu 13. 04 (Raring-Ringtail), вам необходимо изменить файл /etc/init.d/redis-server. Найдите следующие два раздела, которые необходимо изменить:

...

start)
  echo -n "Starting $DESC: "
  mkdir -p $RUNDIR
  touch $PIDFILE
  chown redis:redis $RUNDIR $PIDFILE  # <---- Old Line
  chown vagrant:vagrant $RUNDIR $PIDFILE # <---- New Line

...

  # <-- Old Line
  if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid redis:redis --exec $DAEMON -- $DAEMON_ARGS
  # <-- New Line
  if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid vagrant:vagrant --exec $DAEMON -- $DAEMON_ARGS

...

В основном вы ищете экземпляры текстовых строк redis: redis (владелец / группа) и заменяете их эквивалентными строками vagrant: vagrant.

Если у вас есть запустите redis-server хотя бы один раз под пользователем redid по умолчанию, тогда вам также придется сменить владельца каталога журнала на бродячего пользователя, иначе сервер redis не будет перезапущен.

chown -R vagrant:vagrant /var/log/redis

После перезапуска redid-server вы должна иметь возможность создавать дамп в вашу папку / vagrant, выполнив:

redis-cli save
1
ответ дан 4 December 2019 в 18:01

вы используете здесь виртуальный бокс в качестве провайдера или что-то еще. Если виртуальный бокс, какова среда хоста?

Это может помочь показать нам сообщение об ошибке, которое вы получаете, или (лучше) точку в выводе strace, где происходит сбой. Мне интересно, что именно за неудавшаяся операция. Открываете файл? Получение блокировки?

0
ответ дан 4 December 2019 в 18:01

Теги

Похожие вопросы