[英]Restore database in mysql command line
我從一台服務器上備份了一個數據庫,並試圖在另一台服務器上恢復它。
Mysql版本是5.5
當我嘗試使用以下命令恢復數據庫時,屏幕-r
mysql -u root -p password mydb < mydump.sql
ERROR 1005 (HY000) at line 356: Can't create table 'mydb.mytable' (errno: 150)
我明白這是外鍵約束問題。 轉儲文件里面有以下語句。
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
但它仍然失敗。 我的dumo文件非常大,所以打開它並編輯是不可能的。 所以不要添加SET FOREIGN_KEY_CHECKS=0;
在轉儲中,我可以直接在mysql命令行中設置它,如下所示嗎?
mysql> SET FOREIGN_KEY_CHECKS=0;
...
mysql> source "mydump.sql";
...
mysql> SET FOREIGN_KEY_CHECKS=1;
它會起作用嗎? 我的數據庫重新加載需要數小時才能完成 所以我在這之前花了幾個小時的時間在這里尋求幫助。
謝謝您的幫助。
通常,我只需要輸入2個sql文件 - 首先是一個帶有SET FOREIGN_KEY_CHECKS=0;
的單行程序SET FOREIGN_KEY_CHECKS=0;
,然后轉儲文件。 您無需擔心將其重新設置; 它只會持續當前會話(將在加載文件時終止)。
僅供參考,你也可以使用sed -i 1i"SET FOREIGN_KEY_CHECKS=0;" dump.sql
sed -i 1i"SET FOREIGN_KEY_CHECKS=0;" dump.sql
如果要在不直觀編輯文件的情況下永久地添加此行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.