Перенос базы данных 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/
Готово! Мы только что очень быстро и просто выполнили миграцию всех баз со старого сервера на новый.
Как перенести базу с одного сервера на другой
Экспорт и импорт данных в MySQL обычно требуется при переносе информации из одной базы данных MySQL в другую и для осуществления резервного копирования.
Файл, сформированный специально для переноса базы, принято называть "дампом" (англ. dump). В нем содержится информация (в виде sql-запросов) о всех данных конкретной базы. С помощью такого файла можно перенести любую базу между серверами или хостингами.
Если база небольшая, можно обойтись функцией импорта/экспорта в интерфейсе phpmyadmin (доступ по адресу вида mysqlN.hostland.ru, где N - номер сервера). Для переноса больших дампов баз данных можно воспользоваться ssh-доступом или связаться с технической поддержкой.
Пример команд для экспорта и импорта базы данных:
mysqldump --opt -u имя_пользователя -p пароль имя_базы > имя_дампа.sql
Данные будут сохранены в файле dump.sql. Далее (в случае необходимости) восстанавливаем данные из резервной копии (дампа) так:
mysql -u имя_пользователя -p пароль -h имя_сервера_БД имя_базы < dump.sql
Если пароль был утерян, вы можете самостоятельно изменить его в панели управления, в разделе "Пользователи mysql".
Как перенести базу данных MySQL на другой сервер
У меня есть сервер с очень большой базой данных mysql (160 ГБ). Как легко перенести эту БД на другой сервер?
Ответ 1
Когда вы говорите «переехать на другой сервер», мы предполагаем, что вы хотите переехать на другой сервер с MySQL, а не на другой SQL-сервер (т. е. postrgres или MSSQL).
В общем случае есть два варианта. Перенести каталог /var/lib/mysql на новый сервер как есть или выполнить процесс экспорта и импорта.
Копирование всего каталога mysql означает перенос меньшего количества данных и точную репликацию базы данных с одной машины на другую. Однако версии MySQL должны быть одинаковыми (я полагаю, что теоретически незначительные версии могут меняться, но я бы не стал на это рассчитывать). Вы можете остановить MySQL, распарсить каталог и с помощью «scp» скопировать его на другую машину. Затем распакуйте каталог на другой машине и запустите MySQL. Если вы хотите делать эту копию регулярно, возможно, вам стоит подумать о том, чтобы сделать прямой rsync каталога lib, чтобы последующие запуски команды rsync копировали только различия.
Процесс экспорта/импорта создаст массивный текстовый файл со всеми вашими данными, сохраненными в виде операторов вставки SQL (и с операторами создания таблиц в начале для настройки базы данных). Его можно будет импортировать в другую версию базы данных MySQL, но, опять же, если версии баз данных сильно отличаются, то все может пойти не так. Обычно лучше держать версии MySQL одинаковыми. Основная проблема при выполнении этого способа заключается в том, что при 160 Гб данных, уже имеющихся в вашей базе, дамп будет очень большим, поскольку в нем будут присутствовать дополнительные данные из операторов SQL. Вы можете использовать некоторые из перечисленных выше команд pipe для отправки данных на удаленную машину или вы можете сделать дамп файла (пропустив его через gzip для сжатия) и передать его через scp (при условии, что у вас достаточно места на диске).
mysqldump -u -p | gzip > db_dump.sql.gz
Другая техника, которую вы можете использовать, заключается в передаче команды mysqldump через gzip, затем через netcat (который отправляет ее по сети) в другой процесс netcat, запущенный на серверной машине, который передает ее в gzip и, наконец, в mysql. Преимущество этого способа в том, что данные сжимаются по мере прохождения по сети и не создают временных файлов. На целевой машине:
nc -l 55555 | gzip -d -c | mysql -u -p
На исходной машине:
mysqldump -u -p | gzip | nc 55555
Надеюсь, это поможет объяснить некоторые вопросы. Проверьте команды на странице man, так как у меня нет под рукой базы данных MySQL, чтобы проверить это.
Ответ 2
- Отключите службы MySQL на сервере A .
- Упакуйте каталог данных MySQL (может быть найден в каталоге /var/lib/mysql), который содержит все данные .
- Скопируйте конфигурацию MySQL (может быть найдена в /etc/mysql/my.cnf).
- Скопируйте оба файла через SSH/SCP на сервер B.
- Извлеките данные, поместите файл конфигурации в те же директории.
- (Пере)запустите службы MySQL на сервере B.
- Вы можете найти путь к вашей директории данных MySQL в файле конфигурации MySQL (my.cnf).
Ответ 3
Базы данных MySQL хранятся очень простым способом:
dir = имена баз данных файлы в dir — это таблицы, индексы и т. д.
Поэтому найдите, где находятся ваши базы данных — возможно, что-то вроде этого:
/var/lib/mysql
Здесь у вас будут все ваши базы данных, а в них — таблицы.
Теперь, когда вы нашли их, остановите MySQL и просто заархивируйте структуру каталогов.
tar -zcf mysqldatabases.tar.gz *.
Теперь у вас есть все материалы MySQL в одном заархивированном файле. Скопируйте его в каталог данных нового сервера и распакуйте/разархивируйте его.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Перенос базы данных MySQL
Перенос базы данных (БД) преследует собой цель создания её копии с последующим развертыванием на ином сервере.
Как перенести базу данных MySQL
- Посредством web-приложения phpMyAdmin (для веб-хостинга и VDS).
- Через доступ по SSH протоколу (только для VDS).
- Используя программное обеспечение сторонних разработчиков.
В данной статье изложены первых два способа.
Чтобы перенести на другой хостинг базу, необходимо сначала выполнить её экспорт, т.е. создать дамп (от англ. dump — «разгрузка», «вывод»). Затем — провести процедуру импорта полученного дампа на другом сервере.
Создание дампа
Дамп представляет собой файл, содержащий текстовую информацию в виде SQL-запросов. Как правило, он сохраняется с расширением «SQL» или вообще без расширения. Его можно сформировать с помощью web-интерфейса phpMyAdmin или через панель виртуального хостинга (ISPmanager).
Как создать дамп базы данных через ISPmanager
В ISPmanager можно скачать существующую базу данных. Для этого нужно зайти в панель управления, выбрать раздел «Базы данных», выбрать нужную БД и нажать «Скачать».

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

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

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

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

Как перенести базу данных на виртуальный сервер (VPS)
Процесс переноса баз данных на VPS аналогичен импорту БД на хостинг. Выполнить загрузку дампа базы данных в ISPmanager или непосредственно через FTP.
Иногда размер дампа не позволяет использовать web-интерфейс MySQL. В таком случае, импорт осуществляется с помощью SSH-доступа. Используя подключение SSH, ввести команду как в примере, приведенном ниже.
mysql -uпользователь -pпароль имя_бд < ourdbfile.sql
В данном примере:
- «пользователь» — наименование пользователя в БД;
- «пароль» — пароль вышеуказанного пользователя;
- «имя_бд» — наименование импортируемой БД (например, «test_db»);
- «ourdbfile.sql» — наименование файла импортируемой БД (в данном примере файл расположен в корневой папке хостинга).
После флагов « -u » и « -p » пробела быть не должно.
Соблюдая указанную последовательность действий, можно выполнить правильный перенос базы данных MySQL.
Надежный хостинг для сайта. 14 дней - бесплатно!