簡體   English   中英

無法從 mysql 工作台導出我的數據庫

[英]Can't export my database from mysql workbench

我正在嘗試從 MySQL Workbench 導出我的數據庫,但在導出過程中我得到了這個:

運行:mysqldump.exe --defaults-file="c:\\users\\user\\appdata\\local\\temp\\tmp2h91wa.cnf" --user=root --host=localhost --protocol=tcp --port=3306 - -default-character-set=utf8 --skip-triggers "mydb" mysqldump: 無法執行 'SELECT COLUMN_NAME,
JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')
FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'mydb' AND TABLE_NAME = 'courses';': information_schema 中的未知表 'column_statistics' (1109)

操作失敗,退出代碼 2 20:55:09 導出 C:\\Users\\user\\Documents\\dumps\\mydb.sql 已完成 1 個錯誤

在 MySql Workbench 版本 8.0.13 中執行以下步驟:

  1. 轉到管理/數據導出
  2. 在“要導出的表”列表中選擇要導出的架構
  3. 單擊“高級選項...”按鈕(右上角)
  4. 搜索選項“其他/列統計”
  5. 將值設置為 0
  6. 單擊“返回”按鈕(右上角)

現在它應該可以工作了。 不幸的是,每次啟動 MySql Workbench 時都必須這樣做。

也遇到了這個問題。 決定如下: 在 Workbench 菜單中,轉到:

編輯 - 首選項 - 管理

在“ mysqldump 工具的路徑”字段中,指定mysqldump.exe的路徑,在我的情況下為“ C:\\Program Files\\MySQL\\MySQL Server 5.7\\bin\\mysqldump.exe ”,單擊“確定”。

之后,錯誤不再出現。

這是由於在 mysqldump 8 中默認“啟用”的標志。

這可以通過添加--column-statistics=0來禁用。

句法 :

mysqldump --column-statistics=0 --host=<server> --user <user> --password <securepass> 

欲了解更多信息,請訪問此鏈接

要默認禁用列統計信息,您可以添加:

[mysqldump]
column-statistics=0

到 MySQL 配置文件,例如/etc/my.cnf~/.my.cnf

總結一下我從 @JustinLaureno 和 @Mohd.Shaizad 的有用評論中所做的工作,在 MySQL Workbench 8.0.18 上進行了測試:

  • 導航到C:\\Program Files\\MySQL\\MySQL Workbench 8.0 CE\\modules
  • 編輯文件wb_admin_export.py (你需要管理員權限)
  • 修改行:
skip_column_statistics = True if get_mysqldump_version() > Version(8, 0, 2) and self.owner.ctrl_be.target_version < Version(8, 0, 0) else False
  • 到:
skip_column_statistics = True
  • 不要添加內嵌注釋,否則將不起作用!
 skip_column_statistics = True # This won't work
  • 重啟 MySQL 工作台
  • 執行導出

錯誤仍然在 Workbench 8.0.16 中。

使固定:

您可以在工作台程序目錄中的模塊下編輯 wb_admin_export.py。 搜索“skip_column_statistics = True”(你會找到一個條件,別擔心),注釋該行並添加一行“skip_column_statistics = True”(沒有條件)。

現在將始終添加所需的參數。

5 分鍾前我遇到了同樣的問題。

我通過添加我的mysqldump命令--column-statistics=0修復它。 這樣做,它應該可以工作。

就我而言,這是一項 phing 任務,但您應該明白這一點。

在此處輸入圖片說明

我也有同樣的問題。我可以通過在 MySQL Workbench 數據導出的高級選項中禁用列統計來解決這個問題。

1:點擊高級選項: 在此處輸入圖片說明

2:在列統計的另一部分中,刪除 TRUE 並將其設置為 0 以禁用它。 在此處輸入圖片說明

現在返回和導出數據。 謝謝你

我遇到了同樣的問題,我是這樣解決的:

編輯工作台首選項:編輯 -> 首選項 -> 管理

在屬性“Path to mysqldump Tool”中放置你的 mysqldump.exe 的路徑它通常在“C:\\Program Files\\MySQL\\MySQL Server 5.7\\bin\\mysqldump.exe”中找到

轉到C:\\Program Files\\MySQL\\MySQL Workbench 8.0 CE\\modules並打開此文件wb_admin_export.py並取消注釋“ --column-statistics=0 ”然后重新啟動工作台

我在wb_admin_export.py而不是評論的--column-statistics=0發現了這種情況。 您可以刪除else False條件,或將其更改為else True

skip_column_statistics = True if get_mysqldump_version() > Version(8,
0, 2) and self.owner.ctrl_be.target_version < Version(8, 0, 0) else
True

Mysql-workbench 版本 8.0.14 開始,您無法選擇禁用column-statistics

但是您可以通過啟用 delete-master-logs 來選擇: Mysql-workbench version 8.0.22

  • --delete-master-logs“RESET MASTER” SQL 命令效果相同
  • RESET MASTER刪除索引文件中列出的所有二進制日志文件,將二進制日志索引文件重置為空,並創建一個新的二進制日志文件。 此語句僅在第一次啟動 master 時使用。

我在 MySQL Workbench 最新版本中遇到了同樣的問題,我使用 mysqldump 命令行解決了它

C:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqldump --column-statistics=0  --user=USERNAME --host=REMOTE_HOST --protocol=tcp --port=3306 --default-character-set=utf8 DATABASE_NAME > c:\temp\dump.sql --password

將 USERNAME、REMOTE_HOST、DATABASE_NAME 替換為您的姓名。

在 MACOS 上,只需降級到 8.0.13 版,這是我們唯一可以完成的工作。

以下鏈接可以提供幫助

https://downloads.mysql.com/archives/workbench/

MacOS MySQL 工作台 8.0.13

如果您使用 SSH 密鑰訪問遠程數據庫,請執行以下操作 -:

第1步

brew install putty

第2步

puttygen id_rsa -O private-openssh -o id_rsa.pem

第 3 步- 在 MySQL 工作台中

SSH Key File: /Users/local/.ssh/id_rsa.pem

希望它可以幫助某人,因為它浪費了我們 3 個小時的時間:)

在版本 8 中,我修改了“wb_admin_export.py”並重新啟動工作台。 為我工作

def start(self):
.
.
.
    title = "Dumping " + schema
    title += " (%s)" % table
    # description, object_count, pipe_factory, extra_args, objects
    args = []
    args.append('--column-statistics=0')
class ViewsRoutinesEventsDumpData(DumpThread.TaskData):
    def __init__(self, schema, views, args, make_pipe):
        title = "Dumping " + schema + " views and/or routines and/or events"
        if not views:
           extra_args = ["--no-create-info"]
        else:
            extra_args = []
        DumpThread.TaskData.__init__(self,title, len(views), ["--skip-triggers", " --no-data" ," --no-create-db", "--column-statistics=0"] + extra_args + args, [schema] + views, None, make_pipe)```

您可以使用本機 MySQL Workbench “遷移向導”來遷移數據而不會出錯。 它可以在菜單Database -> Migration Wizard 中找到它可以“在線”傳輸數據,但我沒有找到用它創建轉儲文件的選項。 這是一個很好的遷移解決方案

轉到 C:\\Program Files\\MySQL\\MySQL Workbench 8.0 CE\\modules 並打開此文件 wb_admin_export.py \\您可以刪除 else False 條件,或將其更改為 else True。

skip_column_statistics = True if get_mysqldump_version() > Version(8,
0, 2) and self.owner.ctrl_be.target_version < Version(8, 0, 0) else
True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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