Получение файла размером 0 КБ при резервном копировании базы данных MySQL с использованием дампа MySQL

Я использую приведенный ниже код для резервного копирования моей базы данных, используя скрипт php, но я получаю файл размером 0 КБ. Как я могу сделать резервную копию моей полной базы данных со всеми процедурами и функциями?

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname='mydatabase';
$toDay = date('d-m-Y');
//exec("mysqldump --user=$dbuser --password='$dbpass' --host=$dbhost --single-transaction $dbname > D:\Sql_Backups/".$toDay."_DB.sql");
//exec('mysqldump --user=$dbuser --password=$dbpass --host=$dbhost $dbname > D:\Sql_Backup/file.sql');
exec ("mysqldump --routines --h $dbhost --u $dbuser --p $dbpass --single-transaction $dbname  > D:\Sql_Backup/db_backup.sql");

Как создать резервную копию базы данных в php и заархивировать ее Как сделать резервную копию базы данных MySQL в PHP? Резервное копирование базы данных MySQL и скачать в виде файла

1 ответ

Решение

Есть несколько предложений:
1. Обязательно использовать абсолютный путь для mysqldump.
2. Попробуйте использовать --opt (опция по умолчанию для mysqldump). Можно сослаться на http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
3.Для опции, если используется короткая форма, нет необходимости иметь (-). например: --p. Используйте (-), когда используете полную форму. Например: - пароль. Поэтому используйте "-p" вместо "--p" (также применяется для других).
4. попробуйте 'shell_exec' или 'system', если mysqldump не работает на 'exec'.
5. старайтесь избегать пробелов между опцией и переменной. Например: -p$dbpass

Другие вопросы по тегам