MySQL Workbench 手冊  /  MySQL Workbench 常見問題

附錄 A MySQL Workbench 常見問題

常見問題類別

基本使用

A.1. 什麼是 MySQL 連線?為什麼我可能需要建立多個連線?
A.2. MySQL Workbench 是否支援 TLSv1.2 協定?
A.3. 我如何在 MySQL Workbench 中建立 MySQL 資料庫 (結構描述)?
A.4. 是否有簡單的方法可以從資料表中選取所有資料,然後查看結果?

A.1.

什麼是 MySQL 連線?為什麼我可能需要建立多個連線?

MySQL 連線將 Workbench 連結 (連線) 到 MySQL 伺服器。在 Workbench 中執行的大多數動作都會針對已連線的 MySQL 伺服器執行。每個 MySQL 連線都包含其自己的一組定義,因此您可能會在 Workbench 中定義多個 MySQL 連線。例如,這些連線可能會連線到不同的 MySQL 伺服器,或使用不同的使用者名稱連線到相同的 MySQL 伺服器,或為其中一個啟用 SSL,或者您可以使用 SSH 選項設定與遠端 MySQL 伺服器 (在您的網頁主機上?) 的連線,等等。

至於與相同本機 MySQL 伺服器的多個連線,您可以使用「root」連線,另一個則使用較低權限的使用者。根據您設定使用者的權限方式,他們可能 (或可能不) 都具有查看和使用相同資料庫 (資訊) 的權限。例如,您可以使用 Workbench 來設定和使用您用於網頁應用程式的較低權限使用者。

因此,總結來說,連線只是連線到 MySQL 伺服器。如果兩個連線使用完全相同的資訊,則 Workbench 中的結果應相同,儘管這不是常見的使用案例。如需有關 MySQL Workbench 中 MySQL 連線的其他資訊,請參閱第 5 章,MySQL Workbench 中的連線

A.2.

MySQL Workbench 是否支援 TLSv1.2 協定?

由於 TLSv1.2 需要 OpenSSL,因此此協定的支援適用於 MySQL Workbench 商業版,不適用於社群版 (社群版是使用 yaSSL 編譯的,僅支援 TLSv1.1)。

A.3.

我如何在 MySQL Workbench 中建立 MySQL 資料庫 (結構描述)?

  • 開啟 MySQL 連線以開啟 SQL 編輯器。

  • 在左側窗格中,有一個物件瀏覽器,其中包含兩個名為 管理結構描述 的標籤。選擇結構描述標籤 (預設)。

  • 結構描述 窗格中的任何位置按一下滑鼠右鍵,然後從內容功能表中選擇 建立結構描述

  • 依照結構描述建立精靈的指示,為您的新結構描述命名,然後按一下 套用 以建立您的新結構描述。

其他選項包括按一下主要導覽列上的「建立結構描述」圖示,或在 SQL 編輯器中執行「CREATE SCHEMA your_db_name」查詢。

A.4.

是否有簡單的方法可以從資料表中選取所有資料,然後查看結果?

從結構描述導覽器中,將滑鼠游標停留在資料表上,然後按一下 圖示。這會執行「SELECT * FROM schema.table」查詢,並將結果載入結果方格。從那裡,您可以檢視或編輯資料。

或者,按一下資料表右鍵,然後從內容功能表中選取 選取列 - 限制為 1000

Workbench 功能

A.1. 我要如何使用 SSL 憑證精靈為我的 MySQL 伺服器和 MySQL 用戶端啟用 SSL?
A.2. 我要如何將我在 Workbench 中儲存的 MySQL 連線複製到不同的電腦?
A.3. 我要如何檢視我的 MySQL Workbench 查詢記錄?
A.4. 我可以保留結果標籤,而不是讓它在我每次執行陳述式時都重新整理嗎?
A.5. 內嵌網頁瀏覽器功能如何運作?例如,按一下首頁畫面上的 Workbench 論壇,會在它自己的內嵌 MySQL Workbench 標籤中開啟論壇。
A.6. MySQL Workbench 如何提高匯入效能?

A.1.

我要如何使用 SSL 憑證精靈為我的 MySQL 伺服器和 MySQL 用戶端啟用 SSL?

執行精靈以產生 SSL 憑證,然後據此修改 MySQL 伺服器的組態檔 (my.cnfmy.ini)。您可以從產生的 sample-my.cnf 範例檔複製並貼上 SSL 選項的項目。接下來,確認您的 MySQL 連線的 SSL 標籤下的 CA 檔案CERT 檔案金鑰檔案 值已正確設定。將 使用 SSL 設定為 必要 (建議) 或 如果可用,然後執行 測試連線。這應該會回報 SSL 已啟用。

失敗的 SSL 連線會記錄在 MySQL Workbench 記錄檔中。如需有關記錄檔位置的其他資訊,請參閱第 3.3 節,「MySQL Workbench 設定和記錄檔」

如需其他資訊,請參閱第 5.3.5 節,「SSL 精靈 (憑證)」

A.2.

我要如何將我在 Workbench 中儲存的 MySQL 連線複製到不同的電腦?

從主要導覽選單中,選擇 工具組態,然後選擇 備份連線,以使用您設定的 MySQL 連線建立 Zip 檔案。接下來,使用相關的 還原連線 選項,將此檔案載入到您的新 Workbench 執行個體中。

A.3.

我要如何檢視我的 MySQL Workbench 查詢記錄?

在底部窗格中,將 動作輸出 變更為 記錄,然後選擇適當的日期。

SQL 陳述式記錄會以純文字格式儲存在您系統上的 使用者 MySQL Workbench 組態路徑下的 sql_history 目錄中。這些檔案會按日期 (例如 2014-01-15) 組織,並包含您所有 MySQL 連線的 MySQL Workbench SQL 陳述式記錄。

A.4.

我可以保留結果標籤,而不是讓它在我每次執行陳述式時都重新整理嗎?

可以,您可以固定結果標籤,強制它保留下來且不受 UPDATE 和其他陳述式的影響。方法是按一下結果標籤右鍵,然後從內容功能表中選擇「固定標籤」,或按一下小圖釘圖示來切換它。現在,執行您的其他查詢,然後重新整理固定的標籤 (結果方格的選單中會有「重新整理」圖示)。

A.5.

內嵌網頁瀏覽器功能如何運作?例如,按一下首頁畫面上的 Workbench 論壇,會在它自己的內嵌 MySQL Workbench 標籤中開啟論壇。

在 macOS 上使用 Webkit 系統程式庫,在 Windows 上使用 Internet Explorer,Linux 則會外部開啟預設瀏覽器,而不是內嵌瀏覽器。按下 修飾鍵 + 箭頭 會向前和向後移動瀏覽器記錄。

A.6.

MySQL Workbench 如何提高匯入效能?

當模型匯出時 (資料庫向前工程...),會暫時設定某些 MySQL 伺服器變數,以允許伺服器更快速地匯入 SQL。在程式碼開頭新增的陳述式為

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

這些陳述式的作用如下

  • SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;:決定 InnoDB 是否執行重複索引鍵檢查。如果未執行此檢查,則大型資料集的匯入速度會快很多。如需其他資訊,請參閱unique_checks

  • SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;:決定伺服器是否應在定義外鍵時檢查參考的資料表是否存在。由於可能會有循環參考,因此在匯入期間必須關閉此檢查,才能允許定義外鍵。如需其他資訊,請參閱foreign_key_checks

  • SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';:將 SQL_MODE 設定為 TRADITIONAL,導致伺服器在限制更多的模式下運作,並將 ALLOW_INVALID_DATES,導致日期不會完全驗證。

然後,使用下列陳述式在指令碼結尾重設這些伺服器變數

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Workbench 行為

A.1. 為什麼我的查詢結果有時顯示唯讀,但有時我可以在結果網格中編輯資料?
A.2. 我嘗試執行 DELETE 查詢,但查詢失敗並出現「錯誤代碼:1175」錯誤。我該如何繼續?
A.3. 我的 MySQL 伺服器連線因出現「錯誤代碼:2013。在查詢期間遺失與 MySQL 伺服器的連線」等錯誤而逾時。我可以調整逾時時間嗎?
A.4. MySQL Workbench 資料表編輯器中的欄位旗標縮寫(PK、NN、UQ、BIN、UN、ZF、AI、G)是什麼意思?

A.1.

為什麼我的查詢結果有時顯示 唯讀,但有時我可以在結果網格中編輯資料?

當查詢結果包含主鍵時,查詢結果網格中的資料才能編輯。例如,如果 type 不是主鍵,則 SELECT type FROM food 是唯讀的,但如果 id 是主鍵,則 SELECT id, type FROM food 是可編輯的。通常,Workbench 中會使用 SELECT * 語法,該語法通常包含具有主鍵的查詢結果。

如需其他資訊,請將滑鼠指標移至 唯讀 圖示上,以顯示說明您的結果集為何處於唯讀模式的工具提示。

A.2.

我嘗試執行 DELETE 查詢,但查詢失敗並出現「錯誤代碼:1175」錯誤。我該如何繼續?

依預設,Workbench 設定為不執行未在 KEY 欄位上包含 WHERE 子句的 DELETE 或 UPDATE 查詢。若要變更此行為,請開啟 Workbench 的 偏好設定,選取 SQL 編輯器 區段,然後停用下列偏好設定

[ ] 「安全更新」。禁止在 WHERE 子句中沒有金鑰或沒有 LIMIT 子句的情況下進行 UPDATE 和 DELETE 操作。

變更此偏好設定需要您重新連線到 MySQL 伺服器,才能生效。

A.3.

我的 MySQL 伺服器連線因出現「錯誤代碼:2013。在查詢期間遺失與 MySQL 伺服器的連線」等錯誤而逾時。我可以調整逾時時間嗎?

可以,請前往 偏好設定SQL 編輯器,然後調整 DBMS 連線讀取逾時 選項,預設值為 600 秒。這會設定查詢在 MySQL Workbench 與 MySQL 伺服器斷開連線之前可以執行的最長時間(以秒為單位)。

A.4.

MySQL Workbench 資料表編輯器 中,欄位旗標縮寫(PK、NN、UQ、BIN、UN、ZF、AI、G)是什麼意思?

勾選這些核取方塊會將勾選的約束指派給指定的欄位,從而變更資料表欄位。

將指標移至縮寫上方以檢視說明,並參閱 第 8.1.10.2 節,「欄位索引標籤」,以及 CREATE TABLE 的文件,以取得其他詳細資訊。

資料管理

A.1. 如何使用 Workbench 將逗號分隔值 (CSV) 資料匯入 MySQL?
A.2. 如何將 MySQL 資料匯出為 CSV、JSON 或 XML 等格式的純文字檔案?
A.3. 如何將 MySQL 資料庫匯出(儲存)為文字檔案?

A.1.

如何使用 Workbench 將逗號分隔值 (CSV) 資料匯入 MySQL?

將 CSV 資料匯入新的或現有的 資料表資料表資料匯入 精靈會將可設定的 CSV 資料匯入新的或現有的資料表。此選項已在 MySQL Workbench 6.3 中新增。

將 CSV 資料匯入 結果集從外部檔案匯入記錄 精靈會將 CSV 資料直接匯入結果集的檢視畫面。

或者,資料匯入 精靈會將您儲存的 MySQL 檔案匯入您的 MySQL 伺服器。如需其他資訊,請參閱 第 6.5 節,「資料匯出和匯入」

A.2.

如何將 MySQL 資料匯出為 CSV、JSON 或 XML 等格式的純文字檔案?

Workbench 中的結果檢視面板有一個「將記錄集匯出到外部檔案」選項,可將您的結果集匯出為各種格式。如需其他資訊,請參閱 匯出結果集

注意

這與將 MySQL 資料匯出為標準 MySQL 格式的 資料匯出 精靈不同。如需有關該精靈的其他資訊,請參閱 第 6.5 節,「資料匯出和匯入」

A.3.

如何將 MySQL 資料庫匯出(儲存)為文字檔案?

開啟 MySQL 連線,然後從主導覽功能表中選取 伺服器,並選擇 資料匯出 以開啟資料匯出精靈。或者,從所需 MySQL 選項的左側「管理」窗格中選擇 資料匯出

您可以在這裡選擇要匯出的資料庫、是否要包含資料、是否要傾印到單一檔案或多個檔案(每個資料表一個檔案)等等。如需其他詳細資訊,請參閱 第 6.5 節,「資料匯出和匯入」

一般

A.1. 我被迫使用 MySQL Workbench 5.2.x,其文件是否可用?

A.1.

我被迫使用 MySQL Workbench 5.2.x,其文件是否可用?

雖然 5.2.x 分支已不再維護,但其文件已封存於 https://mysqldev.dev.org.tw/doc/index-archive.html