Перенос базы данных с одного сервера MySQL на другой с помощью mysqldump
Постановка задачи
На сервере исходном есть несколько баз данных, которые нужно перенести на новый сервер. На новом сервере уже есть базы данных, так что создание полной резервной копии и её восстановление в данном случае не подходит. Кроме этого, одна из баз данных на новом сервере уже существует и необходимо добавить в неё новые таблицы, не затрагивая уже имеющиеся.
Для переноса базы данных воспользуемся mysqldump
.
Копирование баз данных
Создадим резервную копию структуры исходных баз данных с исходного сервера в файле dbs.sql.gz
:
$ mysqldump --single-transaction --routines --triggers --events --master-data --databases icsms_statistic neftekamsk oktyabrsky sterlitamak ishimbay salavat | sed '/^CREATE DATABASE .*icsms_statistic.*$/d' | pigz -1p 4 > dbs.sql.gz
Восстановление резервной копии
Сначала создадим базы данных со структурой как у исходных и отсоединим от таблиц файлы с данными:
$ pigz -dkcp 4 dbs.sql.gz | mysql