文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手冊頁 (TGZ) - 258.5Kb
手冊頁 (Zip) - 365.5Kb
資訊 (Gzip) - 4.0Mb
資訊 (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  錯誤訊息和常見問題  /  錯誤資訊介面

B.2 錯誤資訊介面

錯誤訊息可能源自伺服器端或用戶端,每個錯誤訊息都包含錯誤代碼、SQLSTATE 值和訊息字串,如第 B.1 節「錯誤訊息來源和元素」中所述。如需伺服器端、用戶端和全域(在伺服器和用戶端之間共用)錯誤的列表,請參閱MySQL 8.4 錯誤訊息參考

若要從程式中進行錯誤檢查,請使用錯誤代碼數字或符號,而不是錯誤訊息字串。訊息字串不會經常變更,但有可能會變更。此外,如果資料庫管理員變更了語言設定,這會影響訊息字串的語言;請參閱第 12.12 節「設定錯誤訊息語言」

MySQL 中的錯誤資訊可在伺服器錯誤記錄檔、SQL 層級、用戶端程式內以及命令列中取得。

錯誤記錄檔

在伺服器端,某些訊息是給錯誤記錄檔使用的。如需設定伺服器寫入記錄檔的位置和方式的資訊,請參閱第 7.4.2 節「錯誤記錄檔」

其他伺服器錯誤訊息會傳送至用戶端程式,並如用戶端錯誤訊息介面中所述提供。

特定錯誤代碼所在的範圍決定了伺服器是否將錯誤訊息寫入錯誤記錄檔或傳送至用戶端。如需這些範圍的資訊,請參閱錯誤代碼範圍

SQL 錯誤訊息介面

在 SQL 層級,MySQL 中有多個錯誤資訊來源

用戶端錯誤訊息介面

用戶端程式會從兩個來源接收錯誤

  • 源自 MySQL 用戶端程式庫內部的用戶端錯誤。

  • 源自伺服器端並由伺服器傳送至用戶端的錯誤。這些錯誤會在用戶端程式庫內接收,並讓主機用戶端程式可以使用。

特定錯誤代碼所在的範圍決定了它是源自用戶端程式庫內部還是由用戶端從伺服器接收。如需這些範圍的資訊,請參閱錯誤代碼範圍

無論錯誤是源自用戶端程式庫內部還是從伺服器接收,MySQL 用戶端程式都會呼叫用戶端程式庫中的 C API 函式來取得錯誤代碼、SQLSTATE 值、訊息字串和其他相關資訊

如需用戶端程式庫錯誤函式的描述,請參閱MySQL 8.4 C API 開發人員指南

MySQL 用戶端程式可能會以不同的方式回應錯誤。用戶端可能會顯示錯誤訊息,讓使用者可以採取更正措施、在內部嘗試解決或重試失敗的操作,或採取其他動作。例如(使用 mysql 用戶端),連線到伺服器失敗可能會導致此訊息

$> mysql -h no-such-host
ERROR 2005 (HY000): Unknown MySQL server host 'no-such-host' (-2)

命令列錯誤訊息介面

perror 程式會從命令列提供關於錯誤編號的資訊。請參閱第 6.8.1 節「perror — 顯示 MySQL 錯誤訊息資訊」

$> perror 1231
MySQL error code MY-001231 (ER_WRONG_VALUE_FOR_VAR): Variable '%-.64s'
can't be set to the value of '%-.200s'

對於 MySQL NDB 叢集錯誤,請使用 ndb_perror。請參閱第 25.5.16 節「ndb_perror — 取得 NDB 錯誤訊息資訊」

$> ndb_perror 323
NDB error code 323: Invalid nodegroup id, nodegroup already existing:
Permanent error: Application error