Mysql

恢復 MySQL 轉儲錯誤 1449

  • May 14, 2020

我使用以下命令從我的主 MySQL 數據庫中進行了熱備份(轉儲)

mysqldump -uroot -p –skip-lock-tables –single-transaction –flush-logs –hex-blob –master-data=2 -A > ~/dump.sql

主版本:MySQL-server-5.5.41-1.el6.x86_64

在從機上恢復時,我們收到此錯誤,我做錯了什麼。

$$ root@Slave ~ $$$ mysql -u root -p < dump.sql

Enter password:

ERROR 1449 (HY000) at line 150536: The user specified as a definer (’lipl_ga_app’@’%’) 不存在

從站版本:mysql-community-server-5.6.28-2.el6.x86_64

數據庫很大,我們不想再次開始恢復過程。

@ Nawaz Sohail 我已經從下面的命令中備份了 mysql 使用者

mysqldump -u root -p mysql 使用者 > user_table_dump.sql

已恢復

mysql -u root -p mysql < user_table_dump.sql

我試圖以多種方式解決這個問題,但沒有找到任何解決方法。然後我嘗試通過以下步驟再次重做整個事情。

我從 Master Host 備份了 mysql 使用者,

mysqldump -u root -p mysql 使用者 > user_table_dump.sql

並在slave上恢復mysql使用者,

mysql -u root -p mysql < user_table_dump.sql

然後我在奴隸上恢復了主轉儲。

$$ root@Slave ~ $$$ mysql -u root -p <轉儲.sql

主轉儲已恢復,沒有任何錯誤。

顯然這是一個老問題,但仍然在Google搜尋中名列前茅。我之前也遇到過同樣的問題,看起來就像 Mongrel 之前的回答一樣。但是,當我重新安裝我的電腦時,我使用 進行了轉儲,並且無意中出現了這個錯誤 1449,並且僅從格式化的驅動器中mysqldump --all-databases提取數據庫幾乎肯定是不可能的。mysql

.sql所以,我最終通過編輯轉儲 想出了一個“手動”解決方案:mysql數據庫的恢復語句移到頂部。 現在,在非常長的轉儲(GB 大小)上,這很容易出錯。所以,

  1. 啟動您信任的文本編輯器(我相信vim這樣的東西,VS Code 爬行就像打開 GB 大小的文件一樣沒有進展)
  2. 搜尋**目前數據庫:mysql**評論/標記。
  3. 選擇從該點到下一個*目前數據庫的文本:*註釋/標記。
  4. 剪掉它,把它放在一個目前數據庫評論/標記之前。

之後,我保存了修改後的轉儲,現在轉儲恢復沒有錯誤。

引用自:https://dba.stackexchange.com/questions/126839