預設情況下,mysqld 會以英文產生錯誤訊息,但可以改為以其他幾種語言顯示:捷克文、丹麥文、荷蘭文、愛沙尼亞文、法文、德文、希臘文、匈牙利文、義大利文、日文、韓文、挪威文、新挪威文、波蘭文、葡萄牙文、羅馬尼亞文、俄文、斯洛伐克文、西班牙文或瑞典文。這適用於伺服器寫入錯誤日誌和傳送給用戶端的訊息。
若要選取伺服器寫入錯誤訊息的語言,請依照本節中的指示操作。如需變更錯誤訊息的字元集 (而非語言) 的資訊,請參閱第 12.6 節「錯誤訊息字元集」。如需有關設定錯誤記錄的一般資訊,請參閱第 7.4.2 節「錯誤日誌」。
伺服器會使用以下規則搜尋錯誤訊息檔案
它會在從兩個系統變數值
lc_messages_dir
和lc_messages
建構的目錄中尋找檔案,後者會轉換為語言名稱。假設您使用此命令啟動伺服器mysqld --lc_messages_dir=/usr/share/mysql --lc_messages=fr_FR
在這種情況下,mysqld 會將地區設定
fr_FR
對應到語言french
,並在/usr/share/mysql/french
目錄中尋找錯誤檔案。預設情況下,語言檔案位於 MySQL 基本目錄下的
share/mysql/
目錄中。LANGUAGE
如果找不到在剛才描述的目錄中建構的訊息檔案,伺服器會忽略
lc_messages
值,而僅使用lc_messages_dir
值作為尋找的位置。如果伺服器找不到設定的訊息檔案,它會將訊息寫入錯誤日誌以指出問題,並預設為內建的英文訊息。
lc_messages_dir
系統變數只能在伺服器啟動時設定,且在執行階段只有全域唯讀值。lc_messages
可以在伺服器啟動時設定,並且具有可在執行階段修改的全域和工作階段值。因此,可以在伺服器執行時變更錯誤訊息語言,而且每個用戶端都可以透過將其工作階段 lc_messages
值設定為所需的地區設定名稱來擁有自己的錯誤訊息語言。例如,如果伺服器正在使用 fr_FR
地區設定來顯示錯誤訊息,則用戶端可以執行此陳述式以接收英文的錯誤訊息
SET lc_messages = 'en_US';