### 4.4.1 comp\_err — Compile MySQL Error Message File

[]()

[**comp\_err**](comp-err.html) creates the `errmsg.sys` file that is used by [**mysqld**](mysqld.html) to determine the error messages to display for different error codes. [**comp\_err**](comp-err.html) normally is run automatically when MySQL is built. It compiles the `errmsg.sys` file from text-format error information in MySQL source distributions:

* As of MySQL 8.0.19, the error information comes from the `messages_to_error_log.txt` and `messages_to_clients.txt` files in the `share` directory.

   For more information about defining error messages, see the comments within those files, along with the `errmsg_readme.txt` file.

* Prior to MySQL 8.0.19, the error information comes from the `errmsg-utf8.txt` file in the `sql/share` directory.

[**comp\_err**](comp-err.html) also generates the `mysqld_error.h`, `mysqld_ername.h`, and `mysqld_errmsg.h` header files.

 Invoke [**comp\_err**](comp-err.html) like this:

```
comp_err [options]
```

[**comp\_err**](comp-err.html) supports the following options.

* []() [`--help`](comp-err.html#option_comp_err_help), `-?`

  []()[]()

   Display a help message and exit.

* []() [`--charset=*`dir_name`*`](comp-err.html#option_comp_err_charset), `-C *`dir_name`*`

  []()[]()

   The character set directory. The default is `../sql/share/charsets`.

* []() [`--debug=*`debug_options`*`](comp-err.html#option_comp_err_debug), `-# *`debug_options`*`

  []()[]()

   Write a debugging log. A typical *`debug_options`* string is `d:t:O,*`file_name`*`. The default is `d:t:O,/tmp/comp_err.trace`.

* []() [`--debug-info`](comp-err.html#option_comp_err_debug-info), `-T`

  []()[]()

   Print some debugging information when the program exits.

* []() [`--errmsg-file=*`file_name`*`](comp-err.html#option_comp_err_errmsg-file), `-H *`file_name`*`

  []()[]()

   The name of the error message file. The default is `mysqld_errmsg.h`. This option was added in MySQL 8.0.18.

* []() [`--header-file=*`file_name`*`](comp-err.html#option_comp_err_header-file), `-H *`file_name`*`

  []()[]()

   The name of the error header file. The default is `mysqld_error.h`.

* []() [`--in-file=*`file_name`*`](comp-err.html#option_comp_err_in-file), `-F *`file_name`*`

  []()[]()

   The name of the input file. The default is `../share/errmsg-utf8.txt`.

   This option was removed in MySQL 8.0.19 and replaced by the [`--in-file-errlog`](comp-err.html#option_comp_err_in-file-errlog) and [`--in-file-toclient`](comp-err.html#option_comp_err_in-file-toclient) options.

* []() [`--in-file-errlog=*`file_name`*`](comp-err.html#option_comp_err_in-file-errlog), `-e *`file_name`*`

  []()[]()

   The name of the input file that defines error messages intended to be written to the error log. The default is `../share/messages_to_error_log.txt`.

   This option was added in MySQL 8.0.19.

* []() [`--in-file-toclient=*`file_name`*`](comp-err.html#option_comp_err_in-file-toclient), `-c *`file_name`*`

  []()[]()

   The name of the input file that defines error messages intended to be written to clients. The default is `../share/messages_to_clients.txt`.

   This option was added in MySQL 8.0.19.

* []() [`--name-file=*`file_name`*`](comp-err.html#option_comp_err_name-file), `-N *`file_name`*`

  []()[]()

   The name of the error name file. The default is `mysqld_ername.h`.

* []() [`--out-dir=*`dir_name`*`](comp-err.html#option_comp_err_out-dir), `-D *`dir_name`*`

  []()[]()

   The name of the output base directory. The default is `../sql/share/`.

* []() [`--out-file=*`file_name`*`](comp-err.html#option_comp_err_out-file), `-O *`file_name`*`

  []()[]()

   The name of the output file. The default is `errmsg.sys`.

* []() [`--version`](comp-err.html#option_comp_err_version), `-V`

  []()[]()

   Display version information and exit.

