Mysqldump средствами php


Я неоднократно сталкивался с ситуацией, когда нужно стянуть образ большой базы с хостинга, но к движку mysql нету удаленного доступа. PhpMyAdmin может не справиться с этим заданием, если размер базы составляет несколько сотен мегабайт. Как же быть?

Можно получить образ базы средствами php, без shell_exec. Тоесть сам бинарник mysqldump не выполняется.

Все исходники доступны в репозитории на GitHub:
https://github.com/ifsnop/mysqldump-php

Основным файлом является src/Ifsnop/Mysqldump/mysqldump.php

Для упрощения процедуры я собрал моленький архив.

Его нужно скачать и распаковать

wget http://www.tech-notes.net/wp-content/uploads/2015/04/php-mysqldump.zip
unzip php-mysqldump.zip

После этого заливаем папку mysqldump по фтп на сервер в папку сайта и открываем:
http://www.имя_сайта/mysqldump

Индекс файл выводит форму, в которую нужно забить параметры соединения.

  • dbname
  • dbuser
  • password
  • dbhost

Так же его можно дернуть с помощью curl, предовставив все параметры соединения:

curl -X POST http://www.имя_сайта/mysqldump/index.php?dbname=database\&dbuser=mysql_user\&password=mysql_password\&dbhost=host_address

После выполнения, образ базы будет лежать в папке files и будет иметь имя database.sql

Этот файл можно скачивать и заворачивать на новом сервере:

wget http://www.имя_сайта/mysqldump/files/database.sql

Share Button
(Visited 171 times, 1 visits today)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.