Создал файл .tar.gz, но при открытии файла он содержит только backup-my.cnf ..?!
Вы должны использовать опцию -i
для гудрона, чтобы извлечь или просмотреть содержимое файла дегтя, созданного Percona XtraBackup. Это подтверждается, и напоминание выводится в конце innobackupex процесса:
. . .
130630 10:40:23 innobackupex: Connection to database server closed
innobackupex: You must use -i (--ignore-zeros) option for extraction of the tar stream.
130630 10:40:23 innobackupex: completed OK!
Опуская -i
результатов опционных в поведении вы видели: только первый файл в архиве дегтя виден.
Затем я попытался запустить первую рабочую команду из веб-сервера ... Файл не создан ... PHP уже имеет доступ к целевому каталогу
innobackupex процесс должен иметь читать привилегии в файлах данных и журналов в каталоге данных MySQL в дополнение к привилегии записи для сохранения вывода резервной копии.
Вы должны были видеть ошибки, как это:
130630 10:36:20 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Error in opening ./ibdata1
Но это, вероятно, потеряли, потому что в PHP exec()
вызов discards stderr output.
Re ваш комментарий на 8/4:
Хорошо, я попробовал это сам с самыми последними XtraBackup и последнего Percona Server.
Мне нужно проверить это из оболочки, чтобы я мог видеть выход ошибки.Когда вы запускаете его только с вашего PHP-скрипта, вы не видите ошибок по мере их возникновения. Как только вы его заработаете, вы сможете изменить gid на www-data и продолжить работу.
Я протестировал, изменив групповое владение всеми файлами на gid своего пользователя.
$ cd /var/lib/mysql # use your datadir if it is different
$ chgrp -R billkarwin .
Нет необходимости в chmod что-либо по умолчанию. Но ваши права доступа к файлам, вероятно, не прямо на данный момент, так что вам нужно, чтобы восстановить их к чему-то, что работает:
$ cd /var/lib/mysql # use your datadir if it is different
$ chmod -R 660 .
$ chmod 770 . */.
$ chmod 777 mysql.sock
Тогда я могу запустить innobackupex, но я должен указать MySQL учетные данные:
$ innobackupex --user=root --password=XXXX /tmp
130804 08:56:33 innobackupex: Connecting to MySQL server with DSN
'dbi:mysql:;mysql_read_default_group=xtrabackup' as 'root' (using password: YES).
130804 08:56:33 innobackupex: Connected to MySQL server
. . .
130804 09:53:46 innobackupex: Connection to database server closed
130804 09:53:46 innobackupex: completed OK!
Обратите внимание, что вы также можете добавить группу [xtrabackup] к собственному $ HOME/.my.cnf вашего пользователя, поэтому вам не нужно указывать учетные данные в командной строке.
$ cat > ~/.my.cnf
[xtrabackup]
user=root
password=XXXX
^D
$ innobackupex /tmp
Как вы можете открыть и извлечь файлы в окнах? – clarkk
Вы можете установить инструменты [Cygwin] (http://cygwin.org), чтобы получить GNU tar в Windows, поэтому вы можете использовать опцию '-i'. –
извините за то, что вы отсутствовали некоторое время. Как вы даете привилегии чтения процессу innobackupex, чтобы он мог работать с php? – clarkk