首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

解決 MySQL Workbench 導出報錯:unknown variable 'delayed-insert=FALSE'

     編輯:MySQL 綜合教學

問題背景

在使用 MySQL Workbench 導出資料庫表結構與資料時,點擊執行導出後遭遇以下錯誤:

16:22:40 Dumping nacweixindb (tb_app) Running: mysqldump.exe --defaults-file="c:\users\admini~1\appdata\local\temp\tmpswfutq.cnf" --delayed-insert=FALSE --host=localhost --protocol=tcp --user=root --port=3306 --default-character-set=utf8 --single-transaction=TRUE --skip-triggers "test_db" mysqldump: [ERROR] unknown variable 'delayed-insert=FALSE' Operation failed with exitcode 7

多次重試均無效,經查詢 MySQL 官方 Bug 列表發現這是已知問題 Bug #71811:Workbench 無法建立 Single Transaction 轉儲。

根本原因

MySQL 5.7 版本已移除 delayed-insert 參數,但 Workbench 6.3 CE 仍在導出命令中包含此已棄用參數,導致 mysqldump 執行失敗。

解決方案

  1. 開啟 Workbench 安裝目錄下的 modules 資料夾,預設路徑為:
    C:\Program Files (x86)\MySQL\MySQL Workbench 6.3 CE\modules
  2. 尋找 wb_admin_export_options.py 檔案
  3. 用文字編輯器開啟,找到第 29 行左右的 "delayed-insert" 設定項
  4. 將該行註解掉(在行首加上 #),如下所示:
    "Inserts":{
        "extended-insert":["Use multiple-row INSERT syntax that include several VALUES lists.","TRUE"],
        # "delayed-insert":["Write INSERT DELAYED statements rather than INSERT statements.","FALSE", "BOOL", ("5.0.0", "5.7.0")],
        "add-locks":["Surround each table dump with LOCK TABLES and UNLOCK TABLES statements.","TRUE"],
        ...
    }
  5. 儲存檔案並重新啟動 MySQL Workbench

驗證結果

重啟後再次執行導出操作,錯誤不再出現,資料庫結構與資料可正常導出。

參考資源

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved