MySQL内部手册/错误消息MySQL /添加新的错误消息

MySQL 27.1添加新的错误消息

添加错误消息的过程取决于你使用的是哪个版本的MySQL:

  • 在MySQL 5.0.3之前,存储在错误消息errmsg.txt语言中的文件目录下sql /分享。也就是说,有名字的文件捷克/ errmsg.txt,丹麦/ errmsg.txt等等,每一个是特定于语言的。这些特定于语言的文件必须包含一个行对于每一个错误消息,那么添加新消息包括添加一行errmsg.txt为每一个语言文件。这个过程涉及添加英语信息英语/ errmsg.txt文件并运行一个脚本,该脚本将消息添加到其他特定于语言的文件。翻译可以翻译其他的消息errmsg.txt以后的文件。

  • 从MySQL 5.0.3开始,存储在一个单一的错误消息errmsg.txt文件sql /分享目录,它包含了所有语言的错误消息。消息被错误符号分组。对于每一个符号,必须有英文消息,消息可以给其他语言。如果没有消息对于一个给定的语言,使用的是英文版本。信息对于一个给定的语言写在语言使用的字符集,因此文件包含信息在几个字符集。

  • 从MySQL 5.5,存储在一个单一的错误消息errmsg-utf8.txt文件sql /分享目录中。文件格式是类似的errmsg.txt,但文件的内容都写在一个字符集,use utf8。另外一个特性是,错误消息可能包含位置参数。

comp_err程序编译错误消息文本文件或文件到特定于语言的errmsg.sys文件目录下每个位于适当的语言sql /分享:

  • 在MySQL 5.5之前,comp_err读取errmsg.txt和写errmsg.sys文件,每个文件的字符集与语言相关的文件。例如,sql /分享/韩国/ errmsg.sys是用euckr

  • 从MySQL 5.5,comp_err读取errmsg-utf8.txt和写errmsg.sys文件使用use utf8

comp_err还生成的头文件包括目录中。MySQL的构建过程comp_err自动。

请注意:你应该遵守一些关于错误消息应用一般考虑不管你的MySQL版本:

  • 总是使用参数构造等“% .64点”防范缓冲区溢出。的最大长度是错误消息MYSQL_ERRMSG_SIZE

  • 从来没有添加新的参数(例如% s)现有的错误消息。错误消息必须是向后兼容的。如果添加了一个参数,较旧的服务器就会崩溃当运行一个新的错误消息文件。

    • 如果您需要添加新的参数现有的错误消息,可以引入新的错误消息但继续使用旧的错误代码。例如,在MySQL 5.1中,处理程序::print_keydup_error ()方法传递一个消息ER (ER_DUP_ENTRY_WITH_KEY_NAME),但总是使用ER_DUP_ENTRY错误代码。