Перенос базы данных MySQL: как сделать правильно и без ошибок

От автора: недавно в гости родственники заезжали. Так они за пару дней истощили сначала всю продуктовую базу, затем «прокомпостировали» всю нервную, а под конец спалили музыкальную (музыкальный центр). В общем, от греха подальше я решил побыстрее перенести базу данных MySQL. Если вы тоже оказались в такой ситуации, тогда обязательно прочитайте эту статью.

Быстрый способ экспорта

Начнем с обзора phpMyAdmin. Чтобы перенести базу, сначала нужно создать ее дубликат. Для этого в программе имеется специальный функционал. Рассмотрим детально данный процесс:

Можно сначала выбрать в списке слева нужную базу, и затем перейти по вкладке меню «Экспорт». Если использовать данный вариант, то будет произведен потабличный перенос MySQL. Для этого в «Способ экспорта» устанавливаем «Обычный», а в «Таблицы» выбираем элементы экспорта.

Перенос базы данных MySQL: как сделать правильно и без ошибок

Если требуется экспортировать БД целиком (со всеми таблицами), то сразу переходите в «Экспорт». Только здесь мы уже оперируем не таблицами, а базами. В «Способ экспорта» также устанавливаем «Обычный». Затем выделяем нужную БД, и в разделе «Вывод» выбираем вариант «Сохранить вывод в файл».

Перенос базы данных MySQL: как сделать правильно и без ошибок

  • Бесплатный курс по PHP программированию
  • Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
  • В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас! Перенос базы данных MySQL: как сделать правильно и без ошибок

Следующим шагом задаем формат, в котором будет сохранена копия базы. Выбираем в соответствующем списке значение «SQL». Это будет гарантом того, что копию можно будет использовать на большей части платформ. Но если собираетесь переносить базу на конкретную основу, то здесь можно выбрать соответствующий формат: массив PHP, CSV, PDF и другие.

Перенос базы данных MySQL: как сделать правильно и без ошибок

Ниже в разделах «Параметры формата» и «Параметры сохранения данных» можно настроить более «профессиональные» параметры для переноса базы MySQL. Но мы не будет подробно останавливаться на их обзоре.

Если вы не знакомы с какими-либо из них, то лучше не менять (без необходимости) установленные значения по умолчанию. Здесь можно настроить максимальную совместимость со старыми версиями СУБД и как будут сохранены таблицы.

Можно экспортировать только данные или структуры. Мы скопируем таблицы полностью (вариант «структура и данные).

Перенос базы данных MySQL: как сделать правильно и без ошибок

После установки всех параметров для создания копии базы нажимаем внизу «Ок». В результате мы получаем дубликат БД, который легко перенести на другой сервер. По умолчанию созданный файл сохраняется в папке загрузок вашего браузера.

Перенос базы данных MySQL: как сделать правильно и без ошибок

Импортируем

С помощью phpMyAdmin можно не только создавать копии всего сервера, баз и отдельных таблиц. Программа позволяет легко перенести данные MySQL на другой экземпляр СУБД.

Выполнение этого процесса во многом схоже с экспортом базы. phpMyAdmin «умеет» присоединять как отдельные таблицы к базе, так и сразу несколько БД к серверу.

Для присоединения таблиц слева в списке выберите нужную базу, и затем переходите по вкладке «Импорт».

Чтобы присоединить к серверу базу (или несколько баз), сразу переходите по указанной вкладке. Затем в разделе «Импортируемый файл» отмечаем пункт «Обзор вашего компьютера», и через проводник указываем месторасположение файла БД.

Перенос базы данных MySQL: как сделать правильно и без ошибок

Чаще всего используется кодировка UTF-8, которая и установлена по умолчанию. Поэтому, даже если не знаете точно, какая используется в переносимой базе MySQL, то стоит попробовать данную кодировку. В любом случае вы всегда сможете удалить импортированную базу, и затем «перезалить» ее с другой кодировкой.

Также спешу огорчить «рьяных» поклонников phpMyAdmin. Данная утилита подходит только для экспорта-импорта небольших баз (до 2 «метров»). Этого значение вполне хватает для частичного (поэтапного) переноса сервера, что может быть не совсем удобно и затянуть надолго весь процесс.

Перенос базы данных MySQL: как сделать правильно и без ошибок

  1. Бесплатный курс по PHP программированию
  2. Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
  3. В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас! Перенос базы данных MySQL: как сделать правильно и без ошибок

В разделе «Формат» устанавливаем значение «SQL». Если нужно, то включаем режим совместимости. А также отключаем автоматическое создание значения ключа для столбцов с нулевым значением (зависит от структуры таблиц импортируемого источника). И для окончания импорта жмем «Ок».

Если собираетесь перенести базу данных MySQL из бэкапа, то не забудьте перед началом импорта удалить с сервера «оригинал» источника. Иначе получите сообщение об ошибке, поскольку данная БД уже существует.

  • Если процесс прошел удачно, то система программы выведет соответствующее сообщение.

Альтернативное ПО

Я обещал по ходу изучения MySQL знакомить вас с различным программным обеспечением для администрирования СУБД. Так вы сможете расширить свой «профессиональный» кругозор, и выбрать ту программу, которая больше всего подходит под ваши потребности и род деятельности.

Сегодня мы протестируем возможности переноса MySQL с помощью мощного многофункционального приложения, разработанного создателями СУБД. Скачать MySQL Workbench можно с официального ресурса компании. Тут же детально описаны несколько сторонних дистрибутивов (и ссылки на них), которые потребуются для администрирования СУБД с помощью данной платформы.

Повторюсь еще раз: рассматриваемое средство обладает мощным функционалом, поэтому мы рассмотрим лишь тот, который предназначен для импорта-экспорта отдельных баз в формате SQL. Для этого запускаем программу, жмем по иконке нужного соединения (если их несколько).

В новом раскрывшемся окне слева в панели «Navigator» выбираем нужную вкладку (для экспорта или импорта). Я импортирую дубликат базы, созданный с помощью phpMyAdmin.

Чтобы осуществить перенос данных MySQL, переходим через пункт «Data Import». В одноименной вкладке в разделе «Import Options» выбираем второй вариант (обозначен на снимке).

Так как у нас никаких схем нет, то внизу нажимаем на «Start Import». В соседней вкладке «Import Progress» отображается состояние процесса переноса указанного файла. Эта опция может пригодиться при импорте больших объемов данных.

  1. После окончания переноса MySQL в списке баз у нас появится db1, дубликат которой мы создали с помощью phpMyAdmin.

Ну, а пока я «прятал» свою БД MySQL, все родственники разъехались. Так как я был занят, а пополнять продуктовую базу холодильника было некому. Вот как любимая СУБД спасла меня от «родственной» напасти. За что ей огромное спасибо .

  • Бесплатный курс по PHP программированию
  • Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
  • В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Правильный перенос базы данных MySQL

  • Какие способы бывают?
  • 1 – при помощи интерфейса phpMyAdmin.
  • 2 – при помощи панели управления хостинг-провайдера.
  • 3 – при помощи сторонней программы.
  • Какой способ лучше?

Мы рекомендуем первый, т.к. его схема проста, и используется большинством вебмастеров.

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

Поэтому, мы детально рассмотрим первый вариант, и расскажем как грамотно перенести базы данных MySQL, без потери и повреждения данных.

  1. Создаем базу данных на новом хостинге
  2. Если Вы хотите перенести базу данных MySQL, значит у Вас уже есть БД, и Вы умете ее создавать. В любом случае этот процесс разный для каждого из хостинг-провайдеров, но сводится к одному общему алгоритму:
  3. 1 – Ищем раздел “MySQL”, “Базы данных”  или что-то похожее.
  4. 2 – В нем нажимаем “Создать”.
  5. 3 – Вписываем название базы данных, прикрепляем к ней пользователя (обычно пользователь БД уже создан, если нет, то создайте его и установите самые большие права) и вводим пароль для БД.
  6. 4 – База данных создана, но она пока что пустая.
  7. Экспортируем БД со старого хостинга
Читайте также:  Вирусы на сайте: как лечить, диагностика и удаление вирусов с сайта

Сейчас мы воспользуемся тем, что называют дамп базы данных. Т.е. сохраним текущую БД с сервера, к себе на компьютер. Для этого нам понадобится интерфейс phpMyAdmin, который нужно отыскать в личном кабинете хостинг-провайдера, у которого находится Ваш текущий сайт. Опять же единого алгоритма нет, поэтому приводим общую схему:

1 – Найдите ссылку на phpMyAdmin в разделе “MySQL” или “Базы данных”.

2 – Слева в углу выберите свою базу данных (ту, которую вы собираетесь экспортировать на компьютер, чтобы потом перенести на другой хостинг).

Перенос базы данных MySQL: как сделать правильно и без ошибок

3 – Жмем вкладку “Экспорт”.

Перенос базы данных MySQL: как сделать правильно и без ошибок

Дальше все будет зависеть от версии phpMyAdmin, но в любом случае Вам нужно сделать следующее:

4 – Возможно Вас попросят выбрать способ экспорта “Обычный” (много настроек) или “Быстрый” (мало настроек). Не имеет значения какой выбирать, главное изменить только те настройки, которые мы описываем ниже.

5 – Нужно выбрать все таблицы, нажав на кнопку “Выделить все”.

Перенос базы данных MySQL: как сделать правильно и без ошибок

6 – Отметить галочкой “Сохранить как файл”, “Сохранить вывод в файл” или что-то подобное.

Перенос базы данных MySQL: как сделать правильно и без ошибок

7 – На всякий случай, запоминаем кодировку, но не трогаем ее.

8 – Жмем “Ок” и сохраняем файл с БД себе на компьютер. Обычно сохраняемый файл имеет расширение .sql.

  • Импорт БД на сервер нового хостера
  • 1 – Таким же образом ищем phpMyAdmin на новом хостинге.
  • 2 – В нем выбираем нужную базу данных (мы ее создавали в начале статьи, и она осталась пустой).
  • 3 – Жмем на вкладку “Импорт”.
  • 4 – Нажимаем “Обзор” и выбираем сохраненную на компьютере базу данных.

Перенос базы данных MySQL: как сделать правильно и без ошибок

  1. 5 – Проверьте, чтобы кодировка совпадала с той, в которой Вы сохраняли БД.
  2. 6 – Больше ничего не меняете, жмете “Ок” и Ваша база данных импортируется на новый хостинг.
  3. Какие бывают проблемы?

1 – При импорте БД в ней не должно быть запросов типа «CREATE DATABASE, /*!40101 SET @OLD». Чтобы проверить их наличие – откройте файл БД на своем компьютере любым текстовым редактором (лучше всего подходит Notepad++) и через Ctrl+А поищите эти запросы. Если найдете, то просто удалите их, и попробуйте снова импортировать БД.

2 – При импорте, база данных, которая находится у нового хостера должна быть пустой, если в ней уже существуют какие-либо таблицы – выделите и удалите их.

Как перенести базу данных MySQL на хостинг или сервер ♻️

Перенос базы данных (БД) преследует собой цель создания её копии с последующим развертыванием на ином сервере.

Как перенести базу данных MySQL

  1. Посредством web-приложения phpMyAdmin.
  2. Через доступ по SSH протоколу.
  3. Используя программное обеспечение сторонних разработчиков.

В данной статье изложены первых два способа.

Чтобы перенести на другой хостинг базу, необходимо сначала выполнить её экспорт, т.е. создать дамп (от англ. dump — разгрузка, вывод). Затем — провести процедуру импорта полученного дампа на другом сервере.

Как сделать дамп базы данных

Дамп представляет собой файл, содержащий текстовую информацию в виде SQL-запросов. Как правило, он сохраняется с расширением «SQL» или вообще без расширения. Его можно сформировать как с помощью web-интерфейса phpMyAdmin, так и посредством команды SSH.

В ISPmanager можно скачать существующую базу данных. Для этого нужно зайти в панель управления, выбрать раздел «Базы данных», выбрать нужную БД и нажать «Скачать».Перенос базы данных MySQL: как сделать правильно и без ошибок

Как создать дамп базы данных через phpMyAdmin

1. Заходим в панель управления ISPmanager. Переходим в раздел «Базы данных». Выбираем нужную базу и нажимаем «Перейти». Запустится web-интерфейс управления БД — phpMyAdmin.
Перенос базы данных MySQL: как сделать правильно и без ошибок
2. В левой панели выбрать базу данных, подлежащую экспорту, путём однократного нажатия на её названии левой кнопкой мыши.
3. Открыть вкладку «Экспорт».

4. Выбрать формат «SQL».

5. Нажать «Вперед» и сохранить файл на компьютер.
Перенос базы данных MySQL: как сделать правильно и без ошибок

В зависимости от версии phpMyAdmin в перечне настроек закладки «Экспорт» может присутствовать опция «Сохранить как файл» (или «Сохранить вывод в файл»). Соответственно, перед нажатием «ОК» следует убедиться, что эта опция включена.

Как перенести базы данных на хостинг

Перенос на другой сервер осуществляется путем импорта из файла дампа. Чтобы провести импорт с помощью PhpMyAdmin следует выполнить следующее:

1. Запустить web-интерфейс управления БД — phpMyAdmin.
2. Убедиться, что в левой панели отсутствует база с наименованием вновь импортируемой.
3. Открыть вкладку «Импорт».
4. Выбрать импортируемый файл БД.
5. Убедиться, что установлена необходимая кодировка (по умолчанию — UTF-8);

6. Нажать «ОК».

Перенос базы данных MySQL: как сделать правильно и без ошибок

Как перенести базу данных на виртуальный сервер (VPS)

Процесс переноса баз данных на VPS аналогичен импорту БД на хостинг. Выполнить загрузку дампа базы данных в ISPmanager или непосредственно через FTP.

Иногда размер дампа не позволяет использовать web-интерфейс MySQL. В таком случае, импорт осуществляется с помощью SSH-доступа. Используя подключение SSH, ввести команду как в примере, приведенном ниже.

mysql -uпользователь -pпароль имя_бд < ourdbfile.sql

В данном примере:

  • «пользователь» — наименование пользователя в БД;
  • «пароль» — пароль вышеуказанного пользователя;
  • «имя_бд» — наименование импортируемой БД (например, «test_db»);
  • «ourdbfile.sql» — наименование файла импортируемой БД (в данном примере файл расположен в корневой папке хостинга).

После флагов «-u» и «-p» пробела быть не должно.

В итоге, соблюдая указанную последовательность действий будет выполнен правильный перенос базы данных MySQL.

Руководство по миграции из MySQL в SQL Server — SQL Server

  • 10/06/2021
  • Чтение занимает 6 мин
    • c
    • o

Применимо к: SQL Server (все поддерживаемые версии)

Из этого руководства вы узнаете, как перенести базы данных MySQL в SQL Server.

Другие рекомендации по миграции см. в руководствах по переносу баз данных в Azure.

Предварительные требования

Прежде чем приступить к переносу базы данных MySQL в SQL Server, сделайте следующее:

Подготовка к миграции

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

Оценка

С помощью SSMA для MySQL проверьте все объекты и данные в базе данных, чтобы убедиться в готовности баз данных к миграции.

Чтобы создать оценку, выполните следующие действия.

  1. Откройте SSMA для MySQL.

  2. В меню Файл выберите пункт Создать проект.

  3. Укажите имя проекта, расположение для сохранения проекта и целевой объект миграции. Для параметра Перенести в выберите значение SQL Server.

  4. Укажите сведения о подключении в диалоговом окне Подключение к MySQL и подключитесь к серверу MySQL.

  5. Выберите базы данных MySQL, которые требуется перенести.

  6. Щелкните правой кнопкой мыши базу данных MySQL в области Обозреватель метаданных MySQL и выберите команду Создать отчет. Можно также выбрать вкладку Создание отчета в правом верхнем углу.

  7. Ознакомьтесь с HTML-отчетом, чтобы получить сведения о статистике преобразований и любых ошибках или предупреждениях. Также можно открыть отчет в Excel, чтобы получить список объектов MySQL и действий, необходимых для выполнения преобразований схемы. По умолчанию отчет находится в папке report в каталоге SSMAProjects, как показано ниже.

    drive:Users\DocumentsSSMAProjectsMySQLMigration
    eport
    eport_2016_11_12T02_47_55.

Проверьте сопоставления типов данных по умолчанию и измените их в зависимости от требований, если это необходимо. Для этого:

  1. В меню Сервис выберите Параметры проекта.

  2. Перейдите на вкладку Type mapping (Сопоставление типов).

  3. Сопоставление типов для каждой таблицы можно изменить, выбрав таблицу в Обозревателе метаданных MySQL.

Дополнительные сведения о параметрах преобразования в SSMA для MySQL см. в статье Параметры проекта (преобразование) (MySQLToSQL).

Преобразование схемы

Преобразование объектов баз данных происходит следующим образом: определения объектов берутся из MySQL, преобразуются в аналогичные объекты SQL Server, а затем эти сведения загружаются в метаданные SSMA для MySQL. Сведения не загружаются в экземпляр SQL Server. Затем можно просмотреть объекты и их свойства в Обозревателе метаданных SQL Server.

Читайте также:  Дата-центры России: отзывы, обзор и анализ

Во время преобразования SSMA для MySQL выводит сообщения о результатах в области «Вывод» и сообщения об ошибках в области Список ошибок. На основе выходных данных и сведений об ошибках можно определить, нужно ли изменить базы данных MySQL или процесс преобразования, чтобы получить нужные результаты.

Чтобы преобразовать схему, выполните следующие действия.

  1. (Необязательно) Чтобы преобразовать динамические или специальные запросы, щелкните узел правой кнопкой мыши и выберите команду Добавить инструкцию.

  2. Откройте вкладку Подключение к SQL Server.

    1. Введите сведения о подключении для экземпляра SQL Server.
    2. Выберите целевую базу данных в раскрывающемся списке или укажите новое имя. В этом случае база данных будет создана на целевом сервере.
    3. Введите сведения о проверке подлинности и нажмите кнопку Подключить.
  3. Щелкните правой кнопкой мыши базу данных MySQL в области Обозреватель метаданных MySQL и выберите пункт Преобразовать схему. Кроме того, можно выбрать вкладку Преобразование схемы в правом верхнем углу.

  4. После завершения преобразования сравните преобразованные объекты с исходными, чтобы определить возможные проблемы и устранить их в соответствии с рекомендациями.

  5. Сравните преобразованный текст Transact-SQL с исходным кодом и просмотрите рекомендации.

  6. В области вывода выберите элемент Просмотр результатов и проверьте ошибки в области Список ошибок.

  7. Сохраните проект локально для исправления схемы в автономном режиме. В меню Файл выберите команду Сохранить проект. Так можно оценить исходную и целевую схемы в автономном режиме и исправить проблемы перед публикацией схемы в SQL Server.

Дополнительные сведения см. на снимке экрана, на котором показано преобразование баз данных MySQL.

Миграция

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

Доступны два варианта переноса.

  • Перенос данных на стороне клиента
    • Для переноса данных на стороне клиента в диалоговом окне Параметры проекта выберите вариант Подсистема переноса данных на стороне клиента.

    Примечание

    Если целевой базой данных является выпуск SQL Express Edition, то разрешен только перенос данных на стороне клиента. Перенос данных на стороне сервера не поддерживается.

  • Перенос данных на стороне сервера

    • Прежде чем выполнять перенос данных на стороне сервера, необходимо выполнить следующие требования:
      • пакет расширений SSMA для MySQL должен быть установлен в экземпляре SQL Server;
      • служба агента SQL Server должна быть запущена в экземпляре SQL Server.
    • Для переноса данных на стороне сервера в диалоговом окне Параметры проекта выберите вариант Подсистема переноса данных на стороне сервера.

Важно!

Если вы планируете использовать подсистему переноса данных на стороне сервера, то перед переносом необходимо установить пакет расширения SSMA для MySQL и поставщики MySQL на компьютере, на котором выполняется SSMA для MySQL. Кроме того, должна быть запущена служба агента SQL Server. Дополнительные сведения об установке пакета расширения см. в разделе Установка компонентов SSMA в SQL Server (миграция из MySQL в SQL).

Чтобы опубликовать схему и перенести данные, выполните следующие действия.

  1. Опубликуйте схему. Для этого щелкните правой кнопкой мыши базу данных в области Обозреватель метаданных SQL Server и выберите пункт Синхронизировать с базой данных. В результате база данных MySQL будет опубликована в экземпляре SQL Server.

  2. Проверьте результаты сопоставления исходного и целевого проектов.

  3. Перенесите данные. Для этого щелкните правой кнопкой мыши базу данных или объект, которые требуется перенести, в разделе Обозреватель метаданных MySQL и выберите пункт Перенести данные. Кроме того, можно выбрать вкладку Перенос данных.

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

    Чтобы не переносить данные из определенной таблицы, снимите флажок.

  4. После завершения миграции изучите отчет о переносе данных.

  5. Подключитесь к экземпляру SQL Server с помощью SQL Server Management Studio и проверьте результаты миграции, просмотрев данные и схему.

После миграции

После успешного завершения этапа миграции необходимо выполнить ряд дополнительных задач, чтобы обеспечить бесперебойную и эффективную работу всех компонентов.

После переноса данных в целевую среду все приложения, которые раньше использовали источник, должны переключиться на использование целевого объекта миграции. Для этого в некоторых случаях потребуется внести изменения в приложения.

Выполнение тестов

Тестирование переноса базы данных включает следующие действия.

  1. Разработка проверочных тестов. Чтобы протестировать перенос базы данных, необходимо использовать SQL-запросы. Необходимо создать запросы проверки, которые будут выполняться как в исходной, так и в целевой базах данных. Проверочные запросы должны охватывать всю определенную ранее область.
  2. Настройка тестовой среды. Тестовая среда должна содержать копию исходной и целевой баз данных. Не забудьте изолировать тестовую среду.
  3. Выполнение проверочных тестов. Выполните проверочные тесты в исходной и целевой базах данных, а затем проанализируйте результаты.
  4. Выполнение тестов производительности. Запустите тесты производительности для исходной и целевой баз данных, а затем проанализируйте и сравните результаты.

Оптимизация

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

Ресурсы, посвященные миграции

Для получения дополнительной помощи по выполнению этого сценария миграции см. следующий ресурс. Он был разработан как вспомогательный материал по задействованию объективно существующих проектов миграции.

Заголовок
Описание
Модель и средство оценки рабочей нагрузки данных Это средство предоставляет предлагаемые «оптимальные» целевые платформы, готовность к переходу в облако и уровень исправления приложения или базы данных для конкретной рабочей нагрузки. Оно обеспечивает простое и быстрое вычисление и создание отчетов, которое помогает ускорить оценку больших объемов, предоставляя, автоматизируя и унифицируя процесс принятия решения относительно целевой платформы.
Из MySQL в SQL Server — средство сравнения баз данных Средство сравнения баз данных — это консольное приложение Windows, которое позволяет проверить идентичность данных на исходной и целевой платформах. Это средство можно использовать для эффективного сравнения данных на уровне строк или столбцов во всех или выбранных таблицах, строках и столбцах.

Эти ресурсы разработали специалисты по разработке данных SQL. Основная задача этой команды — включить и ускорить комплексную модернизацию проектов миграции платформы данных на платформу данных Microsoft Azure.

Дальнейшие действия

Перенос базы данных MySQL со старого на новый сервер

Перенос или миграция базы данных MySQL или MariaDB между серверами обычно занимает всего несколько простых шагов. В этой статье мы расскажем про них, и вы сможете легко перенести данные со старого Linux сервера на новый, импортировать и выполнить проверку того что все прошло без ошибок. Поехали!

Подготовка

Первым делом нужно убедиться, что и на старом, и на новом сервере установлена одинаковая версия MySQL с одинаковым дистрибутивом. Для этого в командной строке выполните:

mysql -V

После этого нужно убедиться, что на новом сервере хватает места для файла дампа старой базы и импортированной базы данных (например, используя команду df).

Экспортируем базу данных MySQL в файл дампа

Внимание! Не переносите каталог data на новый сервер и не меняйте внутреннюю структуру БД.

Сначала на старом сервере остановите службу mysql или mariadb, используя команду systemctl:

# systemctl stop mariadb
ИЛИ
# systemctl stop mysql

Затем сделайте дамп ваших баз MySQL с помощью команды mysqldump:

# mysqldump -u
[user] -p —all-databases > all_databases.sql

Если база одна, то можно использовать команду:

Читайте также:  Как выбрать и купить хороший хостинг для сайта: выбор хостинг-провайдера

# mysqldump -u root -p —opt [database name] > database_name.sql

Перенос дампа MySQL на новый сервер

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

# scp all_databases.sql user@merionet.ru:~/ [Все базы]
# scp database_name.sql user@merionet.ru:~/ [Одна база]

Импорт файла дампа MySQL на новый сервер

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

# mysql -u [user] -p —all-databases < all_databases.sql [All Databases] # mysql -u [user] -p newdatabase < database_name.sql [Singe Database]

Проверка импорта

После завершения импорта вы можете проверить базы данных на обоих серверах:

# mysql -u user -p
# show databases;

Перенос баз данных и пользователей MySQL на новый сервер

Если нужно переместить все свои БД MySQL, пользователей, разрешения и структуру данных старого сервера на новый, то нужно использовать команду rsync. С ее помощью скопируется весь контент из каталога данных mysql или mariadb на новый сервер.

# rsync -avz /var/lib/mysql/* user@merionet.ru:/var/lib/mysql/

Как только передача завершится, вы можете установить владельца каталога данных mysql или mariadb для пользователя и группы mysql. Для того чтобы убедиться, что что все файлы были переданы можно выполнить просмотр каталога.

# chown mysql:mysql -R /var/lib/mysql/
# ls -l /var/lib/mysql/

Готово! Мы только что очень быстро и просто выполнили миграцию всех баз со старого сервера на новый.

????Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.

????Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.

Перенос БД MySQL на другой хостинг — ИТ Проффи

Далеко не всегда удаётся использовать одну базу данных (БД) на одном сервере. Ситуации бывают разные: перенос проекта с сервера разработки на рабочий хостинг, неисправность оборудования и/или конфигурации ПО на используемом сервере, просто смена хостинга и т. д.

Так или иначе, необходимо перенести БД (или некоторые их объекты) на другой сервер. Будь это коммерческий хостинг или другой обычный сервер, никакой роли не играет — необходимо знать основные аспекты и учитывать некоторые технические детали для каждого из случаев.

Основным принципом, на котором основан перенос БД — это резервное копирование.

Как это работает?

Как можно догадаться, перенос БД — это два основных действия, проводимые непосредственно над БД:

  • создание резервной копии БД на исходном сервере;
  • восстановление БД из резервной копии на целевом сервере.

По соображениям безопасности для БД MySQL нельзя просто скопировать бинарные файлы БД. Поэтому для таких целей предусмотрены инструменты экспорта/импорта, которые можно проводить при помощи специальных команд и/или утилит. Таковыми являются команды mysqldump и source соответственно.
Есть ещё один инструмент для переноса БД — утилита mysqldbcopy.

Она позволяет буквально одной командой скопировать объекты БД с одного сервера на другой. Утилита mysqlbdcopy является более удобным вариантом, однако её рекомендуется использовать опытным пользователям и администраторам.

Именно поэтому для получения полного представления о переносе БД между серверами необходимо освоить выполнение данной задачи «ручным» способом, используя классические инструменты экспорта/импорта.

Команда mysqldump – резервирование БД

Данная команда обычно доступна в пакете mysql-client. Конечно, в зависимости от используемого дистрибутива Linux наименование пакета может несколько отличаться. У команды mysqldump синтаксис несложный и выглядит следующим образом:

musqldump [options] [db_name [tbl_name …]]

На хостинг-площадках команда mysqldump очень часто используется для автоматического (по расписанию) резервирования БД пользователей. Именно такие резервные копии БД и можно использовать для переноса (восстановления/импорта) на другой хостинг.

Команда mysqldump располагает внушительным арсеналом опций, это довольно универсальная команда. Ознакомиться более подробно можно на страницах интерактивного руководства, используя команду man mysqldump. Для того, чтобы сделать дамп БД (т. е.

зафиксировать содержимое и состояние её таблиц в текстовом файле) нужно выполнить команду:

$ mysqldump -u john -p dbname > ~/backups/dbname_back-$(date +%d%m%y).dump

В результате будет создан файл dbname_back-130319.dump в подкаталоге backups домашней директории текущего пользователя. Ключи -u и -p служат для задания имени и пароля пользователя-клиента MySQL соответственно.

Пароль непосредственно в команде mysqldump указывать не стоит — она автоматически предложит его ввести в процессе выполнения. В качестве dbname выступает имя требуемой БД.

Конструкция $(date +%d%m%y) в имени файла позволяет задействовать команду date непосредственно в команде mysqldump для присутствия в имени файла даты создания дампа БД. Символ «>» используется для перенаправления стандартного потока STD_OUT (т. е.

результата) команды mysqldump непосредственно в файл.
На этом, собственно, и всё — дамп БД создан. Теперь его можно использовать для восстановления на целевом сервере.

Команда source MySQL – восстановление резервной копии БД

Команда source является внутренней инструкцией языка SQL, в отличии от команды mysqldump, которая реализует возможности отдельной одноимённой утилиты. С помощью команды source выполняется импорт таблиц из дампа в заранее подготовленную БД. Таким образом, для восстановления на целевом сервере требуемой ДБ необходимо:

  • создать пустую БД;
  • выбрать созданную БД для использования;
  • аполнить выбранную БД содержимым из файла-дампа, сознанного ранее командой mysqldump.

Следует заметить, что все вышеперечисленные действия выполняются средствами языка запросов SQL (MySQL). Итак, первым делом необходимо авторизоваться на сервере MySQL:

$ mysql -u username -p
Enter password:
mysql>

При успешной авторизации, как видно, пользователь будет перенаправлен в командную консоль MySQL. Далее не лишним будет посмотреть, какие БД доступны пользователю:

mysql>show databases;
+——————-+
| Database |
+——————-+
| drupal7_devtest |
| phpmyadmin |
| wordpress_devtest |
+——————-+
3 rows in set (0.01 sec)
mysql>

Теперь нужно создать новую (пустую) БД для последующего в неё импорта содержимого дампа:

mysql>create database new_dbname;
Query OK, 1 row affected (0.00 sec)
mysql>

Создана новая БД с именем new_dbname. Если снова выполнить запрос «show databases;», то БД new_dbname будет в представленном списке. Далее, для того, чтобы можно было работать с этой БД (new_dbname), следует её явно выбрать. Для этого нужно выполнить запрос:

mysql>use new_dbname;
Database changed
mysql>

Теперь можно импортировать таблицы (со всем их содержимым) из ранее созданного дампа:

mysql>source ~/bacups/dbname_back-130319.dump;
Query OK, 0 rows affected (0.00 sec)
. . .
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
Query OK, 0 rows affected (0.00 sec)

Изучая вывод запроса source можно делать вывод о том, корректно ли был произведён импорт содержимого дампа.

В данном случае всё прошло без ошибок и теперь БД new_dbname готова к использованию, при условии, что для неё установлены соответствующие привилегии. Для выхода из командной оболочки MySQL следует выполнить команду exit.

Особое внимание следует обратить на то, что использование символа «;» в конце каждого запроса является обязательным — таков синтаксис языка SQL.

Восстановление базы с помощью mysql

Еще один способ восстановление базы можно выполнить с помощью команды mysql. Здесь также должна быть создана пустая база данных, как создать было рассмотрено выше. После чего из корня ОС (не из командной строки mysql) дать команду

mysql -u user -p new_dbname < ~/bacups/dbname_back-130319.dump

Заключение

Как видим перенос базы MySql не представляет большой сложности. Следует отметить, что в случае с очень большими БД, перенос может занимать длительное время.Например, на перенос БД объёмом 200 Гб может потребоваться приблизительно неделя. В таких случаях обычно перенос осуществляют по частям, отдельными таблицами, или использовать другие инструменты переноса.

Ссылка на основную публикацию