Как сделать backup MySQL базы данных с удалённого сервера на Java

Доброго времени суток, есть база данных MySQL на удалённом сервере, такая которую предоставляют почти все веб хостинги. Соответственно от неё имеется только хост, название базы данных, логин и пароль. Задача в том чтобы с помощью Java сделать backup этой базы. С помощью JDBC подключиться к ней не проблема, но вот как сделать backup(backup.sql) и сохранить его на локальный компьютер?
  • Вопрос задан
  • 4170 просмотров
Решения вопроса 1
Так как в MySQL для этих целей есть стандартное средство mysqldump, то в вашем случае с Java есть два варианта.

Долгий и сложный:

1) Подключаетесь к базе и делаете SHOW TABLES
2) Для каждой таблицы делаете SHOW CREATE TABLE название_таблицы, чтобы получить SQL-запрос на создание такой же таблицы.
3) По каждой таблице делаете SELECT, чтобы получить данные, из которых затем формируете INSERT запросы.
4) Сохраняете всё это в файл - и вот он ваш бэкап.

Проще, но с заморочками:

1) Запустите утилиту mysqldump, если она установлена на сервере, где вы запускаете Java-программу, используя Runtime.getRuntime().exec - www.mkyong.com/java/how-to-execute-shell-command-f...

Чтобы подключаться к удаленным серверам MySQL, нужно запускать mysqldump с параметром -h, который указывает на fqdn или ip сервера баз данных. На сервере баз данных должен быть открыт порт, а права пользователя базы данных должны позволять подключаться к ней удаленно.

Если бы у вас подобная задача стояла на PHP, то я бы рекомендовал воспользоваться вот этой замечательной утилитой: https://github.com/clouddueling/mysqldump-php
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@a_f0x
1) Подключаетесь к базе и делаете SHOW TABLES
2) Для каждой таблицы делаете SHOW CREATE TABLE название_таблицы, чтобы получить SQL-запрос на создание такой же таблицы.
3) По каждой таблице делаете SELECT, чтобы получить данные, из которых затем формируете INSERT запросы.
4) Сохраняете всё это в файл - и вот он ваш бэкап.

А как быть со связями ?
с внешними ключами ?
если есть вьюхи ?
если временные таблицы ?
хранимые процедуры ?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы