jessepinkman010101
@jessepinkman010101
Варю синий код

Как сделать бэкап базы данных mysql с помощью php?

Привет!
Мне нужно сделать бэкап, dump базы данных с помощью php.
Нагулил такое решение но ни одно не помогло:

//разумеется тут данные свои, имя пользователя, пароль и название бд
exec("mysqldump --user={$user} --password={$pass} --host={$host} {$database} --result-file={$dir} 2>&1", $output);


$backup_file = $dbname . date("Y-m-d-H-i-s") . '.gz';
   $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass ". "test_db | gzip > $backup_file";
   
   system($command);


exec('mysqldump --user=... --password=... --host=... DB_NAME > /path/to/output/file.sql');


Оно создает пустой файл .sql

Использую
SERVER - localhost(xampp)
PHP - php7.4
MYSQL - 10.4.19-MariaDB

Может кто-то уже делал такое, пожалуйста, поделитесь решением
  • Вопрос задан
  • 258 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Для следует указать путь к исполняемому файлу:
$path = 'C:\path\to\mysqldump\';
exec("{$path}mysqldump --user={$user} --password={$pass} --host={$host} {$database} --result-file={$dir} 2>&1", $output);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@grek_cheburek
Программист самоучка
А если у автора путь поменяется, тогда что ему делать? В свое время, для себя, я писал скрипт, который делал бэкап базы, или таблицы, или всего сервера. Потратил на это два дня, но оно того стоило. Так что и вам рекомендую написать для себя такой же скрипт и будет тогда все ок. Логика проста. Вам нужно создать несколько функций. Одна будет подготавливать таблицу, другая будет подготавливать данные из таблицы, а третья соберет все это в один файл.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы