Клонирование базы данных MySQL в том же экземпляре MySql - PullRequest
113 голосов
/ 24 марта 2009

Я хотел бы написать скрипт, который копирует мою текущую базу данных sitedb1 в sitedb2 в том же экземпляре базы данных mysql. Я знаю, что могу сбросить sitedb1 в сценарий sql:

mysqldump -u root -p sitedb1 >~/db_name.sql

и затем импортируйте его в sitedb2. Есть ли более простой способ, без выгрузки первой базы данных в файл sql?

Ответы [ 13 ]

0 голосов
/ 04 марта 2019

Если у вас есть триггеры в исходной базе данных, вы можете избежать ошибки «Триггер уже существует», передавая замену перед импортом:

mysqldump -u olddbuser -p -d olddbname | sed "s/`olddbname`./`newdbname`./" | mysql -u newdbuser -p -D newdbname
0 голосов
/ 06 июля 2015

В дополнение к ответу Грега это самый простой и быстрый способ, если new_db_name еще не существует:

echo "create database new_db_name" | mysql -u <user> -p <pwd> 
mysqldump -u <user> -p <pwd> db_name | mysql -u <user> -p <pwd> new_db_name
0 голосов
/ 24 марта 2009

Я не думаю, что есть способ сделать это. Когда PHPMyAdmin делает это, он сбрасывает базу данных, а затем снова вставляет ее под новым именем.

...