默认情况下,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';