こんにちは。Takitaです。
MySQL5.1(CentOS6のデフォルト)で絵文字対応したくて文字コードを utf8
から utf8mb4
にしようとしたところ、utf8mb4
対応のMySQLバージョン5.5は以降でした。
MySQL5.5以上にすべくアップデート後、MySQLに接続しようとすると、Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' が出てハマりました。
基本的に原因は以下の3つだと思い試していましたがダメでした。
やっぱりエラーログ見ずに対応したらだめですね。
急がば回れでした。
まずはMySQL起動ログを見てみます。
$ tail -f /var/log/mysqld.log
// 省略
2018-07-07T04:18:49.669563Z 0 [ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.
2018-07-07T04:18:49.669697Z 0 [ERROR] Aborting
// 省略
なるほど、mysql.user tableがダメージをうけてると。
エラーが分かれば解決策をぐぐればいいですね。
$ sudo /usr/bin/mysqld_safe --skip-grant-tables &
$ mysql_upgrade -u root -p
(省略)
Upgrade process completed successfully.
Could not create the upgrade info file '/var/lib/mysql/mysql_upgrade_info' in the MySQL Servers datadir, errno: 13
以下を参考にしました。
ありがとうございます。