MySQL8.0 起動時に「Can’t find error-message file …」エラーで怒られた

現象

MySQL8.0 起動時に以下のようなエラーで怒られたので対処。

yyyy-MM-ddThh:ii:ss.mmmmmm-zz:zz 0 [ERROR] [MY-010338] [Server] Can’t find error-message file ‘/var/lib/mysql/share/mysql-8.0/errmsg.sys’. Check error-message file location and ‘lc-messages-dir’ configuration directive.

設定として、 my.cnf は以下のようなディレクトリ指定をしていました。

[mysqld]
basedir = /var/lib/mysql
datadir = /var/lib/mysql/data

これが標準とずれているのか、エラーメッセージのファイルが見付からない、と怒られて MySQL が起動できませんでした。

対処

まずはエラーメッセージの在り処を探します。

# find / -name "*errmsg*"

/usr/share/mysql-8.0/norwegian/errmsg.sys
/usr/share/mysql-8.0/serbian/errmsg.sys

## 略

/usr/share/mysql-8.0/ の下にあるようです。そこで、設定ファイルに以下のように追記しました。

[mysqld]
basedir = /var/lib/mysql
datadir = /var/lib/mysql/data

# error messages
lc_messages_dir = /usr/share/mysql-8.0 #追加

これでエラーが発生しなくなりました。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。