簡體   English   中英

在mysql命令行中恢復數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM