先日Ubuntu(18.04)をアップデートしたところ、インストールしてあったMySQLが5系から自動で8.0に更新されました。
この状態で普段から使用しているストレージサービスをサーバー上で動作させることのできる”ownCloud”を動かしたところ…
SQLSTATE[HY000] [2054] Server sent charset unknown to the client. Please, report to the developers
上のようなエラーが発生。
調べたところ、どうやらMySQL8.0ではデフォルトの文字コードが設定ファイルで未定義になっているとエラーになるようです。
ということで、/etc/mysql/my.cnfに下記のように指定を追記します。(文字コードは必要に応じて変更した方がよさそうな気がします。)
[mysqld]
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
ただし、これだけだと
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
といったエラーが出てしまいますので、もう一行
default_authentication_plugin=mysql_native_password
の追記が必要です。
つまり合わせると、下記の4行を追記すればOKです。
[mysqld]
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
default_authentication_plugin=mysql_native_password
これでエラーが消えて正常に動作するようになりました。
参考: MySQL 5.7 → MySQL 8.0 に更新した&メモ – 犬ターネット