Перенос базы данных с одного сервера 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