Yak shaving logs


My life is just yak shaving.

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' にハマった

2018/07/07 #mysql

By Yusuke Takita


こんにちは。Kajitz inc.の瀧田です。

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つだと思い試していましたがダメでした。

  1. そもそもMySQLが起動してない
  2. mysql.sockのパスがおかしい
  3. そもそもmysql.sockがない

やっぱりエラーログ見ずに対応したらだめですね。
急がば回れでした。

まずは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

以下を参考にしました。
ありがとうございます。

このエントリーをはてなブックマークに追加

categories


最新記事


tags