文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

B.2 錯誤資訊介面

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

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

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

錯誤日誌

在伺服器端,某些訊息會寫入錯誤日誌。有關設定伺服器寫入日誌的位置和方式的資訊,請參閱第 7.4.2 節,「錯誤日誌」

其他伺服器錯誤訊息會傳送至用戶端程式,並且可按照用戶端錯誤訊息介面中所述取得。

特定錯誤碼所在的範圍會決定伺服器是否將錯誤訊息寫入錯誤日誌或傳送給用戶端。有關這些範圍的資訊,請參閱錯誤碼範圍

SQL 錯誤訊息介面

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

用戶端錯誤訊息介面

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

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

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

特定錯誤碼所在的範圍會決定它是否源自於用戶端程式庫內,或是否由用戶端從伺服器接收。有關這些範圍的資訊,請參閱錯誤碼範圍

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

有關用戶端程式庫錯誤函數的說明,請參閱MySQL 9.0 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 Cluster 錯誤,請使用 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