Comp err - 编译MySQL错误消息文件

来自泡泡学习笔记
BrainBs讨论 | 贡献2023年12月8日 (五) 09:48的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

comp_err 是一个用于编译MySQL错误消息文件的工具。它创建了一个名为 errmsg.sys 的文件,该文件被mysqld用于确定不同错误代码要显示的错误消息。通常情况下,在构建MySQL时会自动运行 comp_err。它会从MySQL源代码分发中的文本格式错误信息中编译 errmsg.sys 文件:


  • 自MySQL 8.0.19起,错误信息来自共享目录中的 messages_to_error_log.txt 和 messages_to_clients.txt 文件。
  • 在MySQL 8.0.19之前,错误信息来自sql/share目录中的 errmsg-utf8.txt 文件。


comp_err 还生成了 mysqld_error.h、mysqld_ername.h 和 mysqld_errmsg.h 头文件。


调用 comp_err 的方法如下:

comp_err [options]


comp_err 支持以下选项。

选项 描述
–help, -? 显示帮助信息并退出。
–charset=dir_name, -C dir_name 字符集目录。默认为../sql/share/charsets。
–debug=debug_options, -# debug_options 写入调试日志。典型的debug_options字符串是d:t:O,file_name。默认为d:t:O,/tmp/comp_err.trace。
–debug-info, -T 程序退出时打印一些调试信息。
–errmsg-file=file_name, -H file_name 错误消息文件的名称。默认为mysqld_errmsg.h。此选项在MySQL 8.0.18中添加。
–header-file=file_name, -H file_name 错误头文件的名称。默认为mysqld_error.h。
–in-file=file_name, -F file_name 输入文件的名称。默认为../share/errmsg-utf8.txt。此选项在MySQL 8.0.19中移除,由–in-file-errlog和–in-file-toclient选项替代。
–in-file-errlog=file_name, -e file_name 定义要写入错误日志的错误消息的输入文件的名称。默认为../share/messages_to_error_log.txt。此选项在MySQL 8.0.19中添加。
–in-file-toclient=file_name, -c file_name 定义要写入客户端的错误消息的输入文件的名称。默认为../share/messages_to_clients.txt。此选项在MySQL 8.0.19中添加。
–name-file=file_name, -N file_name 错误名称文件的名称。默认为mysqld_ername.h。
–out-dir=dir_name, -D dir_name 输出基本目录的名称。默认为../sql/share/.
–out-file=file_name, -O file_name 输出文件的名称。默认为errmsg.sys。
–version, -V 显示版本信息并退出。