Как скопировать всю базу данных на другой сервер базы данных?

В настоящее время я работаю над приложением Windows с бэкэндом MySQL. Теперь я хочу скопировать старую структуру базы данных и данные на новый сервер базы данных.

Как я могу решить эту проблему, используя MySQL Workbench?

Спасибо!

Ответы

Ответ 1

  • Откройте MySQL Workbench
  • Создайте соединение с старым сервером (если у вас его нет)
  • Создайте новое подключение к серверу (если у вас его нет)
  • Откройте "Администрирование сервера" и выберите "Управление импортом/экспортом"
  • Выберите старый сервер
  • Выберите все схемы на вкладке "Экспорт на диск"
  • В параметрах выберите Export to Self-Contained File, подождите, пока он не будет завершен.
  • Вернитесь в Управление сервером и нажмите "Управление импортом/экспортом"
  • Выберите новый сервер
  • Переключиться на "Импорт с диска"
  • Нажмите "импорт из автономного файла"

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

Ответ 2

Для непосредственного копирования базы данных без предварительного экспорта и импорта вы можете использовать команду MySQL Utilities mysqdbcopy:

mysqldbcopy --source=root:[email protected] --destination=root:[email protected] world:world_clone

Вы можете запустить команду в Windows cmd или в консоли MySQL Utilities.

Ответ 3

Если вы установили phpmyadmin, вы можете использовать следующие шаги:

  • В phpmyadmin исходного сервера, используя функцию Экспорт ", убедитесь, что

a) В методе экспорта выберите "Пользовательский" - отобразите все возможные параметры

b) В разделе "Параметры, специфичные для формата", убедитесь, что выбраны "структура и данные".

c) В параметрах "Создание объектов" убедитесь, что также отмечен " ADD CREATE DATABASE/USE statement.

Экспортировать файл SQL.

  • scp экспортированный файл с исходного сервера на целевой сервер

  • В phpmyadmin целевого сервера, используя функцию Импорт ", импортируйте файл SQL в базу данных. В процессе импорта не было необходимости выбирать какую-либо специальную опцию.

Ответ 4

Чтобы напрямую скопировать базу данных с одного сервера на другой (даже локальный) без создания промежуточных файлов экспорта/дампа, вы можете сделать это в MySQL Workbench с помощью мастера. Перейдите в DatabaseMigration Wizard. (редактировать: документы)

Оттуда вы можете выбрать исходные и целевые подключения, если вы ранее сохранили их в своем списке подключений, или вы можете создать новое подключение на лету (не забудьте установить флажок, чтобы добавить его в список подключений).
Вы также выберете тип базы данных или их общую версию (не помню, как она называется) и дадите ей понять, какие у вас есть серверы баз данных. Как правило, вы можете выбрать MySQL для баз данных MySQL или MariaDB, так как MariaDB, как правило, предназначен для "двоичной замены" MySQL.

Когда он просит вас выбрать, какие базы данных, я понимаю, что INFORMATION_SCHEMA только для чтения и не должен выбираться. В противном случае, если у вас нет особых потребностей, возможно, выберите все другие таблицы, если, например, вы клонируете сервер (и, возможно, связанный с ним веб-сайт).

Оттуда вы позволите MySQL Workbench делать свое дело. Продолжайте нажимать "Далее", пока не пройдете процесс обратного инжиниринга вашей схемы со старых на новые серверы, пока он, наконец, не скопирует данные.

Есть много моментов, в которых вы можете внести изменения, прежде чем продолжить. Также у вас есть возможность просмотра потенциальных проблем и предупреждений, которые он отмечает во время процесса.

Когда это будет сделано, вам все равно нужно будет добавить пользователей (вручную?) Для клонированной базы данных. Вероятно, существует автоматический способ клонирования таблицы пользователей, но я не знаю об этом. Вы можете сделать это из командной строки, если ничего другого. Так как я использую это для своего локального разработчика, мне нужно только добавить себя.

Я не уверен, что использовать этот инструмент быстрее, чем экспортировать и импортировать базы данных обычным способом. Но это, конечно, проще.
Этот инструмент на самом деле предназначен для более сложных миграций между различными типами баз данных (например, PostgressSQL и MySQL), а не как общий инструмент, скажем, для получения копии вашей действующей базы данных на ваш локальный сервер разработки или наоборот.

В том же меню есть DatabaseSchema Transfer Wizard, который, как я понял, будет использоваться, когда вам нужно обновить сервер до новой версии. Мне не ясно, в чем конкретно разница между этими двумя инструментами, или их фактическое использование.

Инструкции о том, как выполнять стандартные операции импорта/экспорта, в рабочей среде MySQL документами являются Мастер экспорта и импорта данных SQL и Мастер экспорта и импорта табличных данных.

Было бы здорово, если бы можно было напрямую импортировать/экспортировать между dev и live серверами, просто выбрав Connections, а не сохраняя и считывая файлы дампа.
Я думаю, что это может быть сделано через командную строку, хотя.