2012-05-29 1 views
0

Что мне нужно сделать, это сделать файл резервной копии sql («Сгенерировать вставки») определенных табличных данных. Я хочу делать это ежемесячно.Резервное копирование данных таблицы mysql выборочно с удаленного сервера в файл SQL

Sample выберите заявление:

SELECT * FROM table WHERE date >= "01-01-2012" AND date < "01-02-2012" 

Дело в том, мне нужно сделать резервную копию с удаленного сервера SQL. Кажется, я не могу использовать mysqldump, тогда (?)

Итак, должен ли я просто написать PHP-скрипт для создания этих операторов? Кажется, немного варварское решение;)

Прошу прощения, этот вопрос кажется довольно простым, но я уже с ним смущен.

кстати. Таблицы частично InnoDB и MyISAM частично

+0

Просто потому, что сервер удален, сам по себе не исключает использование 'mysqldump' - это зависит от того, разрешает ли сервер входящие соединения с вашего хоста. – eggyal

+0

Спасибо за быстрый ответ. Да, я могу подключиться от своего хозяина, если это то, что вы имеете в виду. Извините, но я не могу понять, как реально использовать mysqldump удаленно, сохраняя файлы резервных копий на локальном компьютере. – hellward

+0

вы можете использовать 'mysqldump -h hostname ....' для подключения удаленно, вы можете использовать имя хоста или IP-адрес – Nico

ответ

0

Вы задаете ряд вопросов ...

Если удаленная машина Unix, написать небольшой Баш скрипт так:

#!/bin/bash 

/usr/bin/mysqldump -h db_server -u user_name -ppassword --WHERE 'date >= "01-01-2012" AND date < "01-02-2012"' database_name table_name | gzip > output.sql.gz 

Вещи, чтобы отметить:

  1. Пароль жестко закодирован в скрипте. Используйте менее привилегированную учетную запись пользователя.
  2. Ваш диапазон дат также жестко закодирован, но это достаточно легко сделать общим.
  3. Между '-p' и паролем нет места.

Для презервативов используйте - единую транзакцию. Для миисама, я думаю, вы придерживаетесь -lock-tables.

Затем запустите этот скрипт в задании cron.

Если у вас возникли проблемы с подключением, проверьте права доступа к брандмауэру и mysql.

И мои $ 0,02 ... написания сценариев php, которые запускают команды оболочки, действительно ленивы. Напишите для них сценарии оболочки. Вы лучше спать.

Удачи.

Смежные вопросы