我用下面的命令備份我的生產數據庫:MySQL的恢復到不同的數據庫
mysqldump -u root --opt --skip-extended-insert --databases my_production_db
生成的轉儲文件具有接近頂部以下行:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `my_production_db` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `my_production_db `;
爲了恢復數據庫到不同的目的地即。 my_debvelopment_db
我必須打開轉儲文件並編輯數據庫命名的位。
然後我運行:
mysql -u root -p <password> < mydumpfile
我還沒有想出另一種方式來做到這一點。
隨着數據庫變大,這變得不切實際。
我錯過了什麼嗎?無論如何,我不知何故指定我想恢復數據庫的位置?我需要一個不同的備份命令嗎?
即使沒有'--databases'選項,似乎'mysqldump'仍可能會在轉儲中生成對數據庫名稱的引用。至少我在數據庫轉儲中遇到了一些'ALTER DATABASE \'dbname \'CHARACTER SET utf8 COLLATE utf8_bin'的問題,而不使用'--databases'選項。其中有兩個,第二個覆蓋第一個。 – Hibou57