Debian.pro

Блог для пользователей и администраторов Debian


mysqldump с удаленного сервера на локальный, быстрый перенос базы mysql.

Всё гениальное, как говорится, просто. Болтался я вчера в IRC и додумался я до одной интересной вещи.
Имеем сервер с mysql, который слушает только localhost. Туда есть доступ по ssh. Нам лениво изменять настройки mysql. А нужно сделать дамп базы на нашу машинку или скопировать удаленную базу в локальную.
remotehost — удаленный сервер
remotedb — база на удаленном сервере
localdb — база на локальном компе
remotemuser — юзер mysql на удаленном сервере
localmuser — юзер mysql на локальном сервере

Создание дампа в таких условиях:
localserver:~$ ssh user@remotehost mysqldump -u remotemuser -p remotedb > file.sql
Создаст дамп file.sql в текущем каталоге с содержимым базы remotedb.

Восстановим базу на удаленный сервер:
localserver:~$ ssh user@remotehost mysql -u remotemuser -p remotedb < file.sql

Сей финт ушами мы используем для централизованного создания бэкапов с кучи серверов на один. Скрипты хранить на каждом сервере ненадо ) Да и cron один.


Комментарии (8):

  1. Как то не очень получается. Возникает куча вопросов
    Например: Что произойдет если я не знаю количество баз данных на сервере и названия их?

  2. Хотя финт интересный

  3. pozadi :

    Может я что-то не понимаю но ведь если написать «… < ssh …", то bash будет искать файл "ssh" чтобы из него прочитать.

  4. Да, что то я стормозил.
    Перепишу вечером.

  5. Писать адский скрипт, фигле =)

  6. Dasuber :

    Если удаленный сервер лег (или сервер БД остановлен), то file.sql получится пустым на бекап сервере.

  7. олег :

    mysqldump -u $user -p$password $dbname —lock-all-tables –-quick > $dirbackup/db.sql

    делаю так и пустой файла дампа на локалке создаётся, как поправить ???

  8. Откуда дамп-то делаете? По ssh вы никуда не пошли

Написать комментарий