DebianでMySQLサーバーをアップグレードしたところです。しかし、サーバーを起動して接続しようとすると、エラーが発生します。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
どうすれば修正できますか?
私はこの質問が5か月前のものであることを知っていますが、3つの異なるアップグレードで同じ問題に遭遇したので、とにかく自分の解決策を投稿したいと思いました。
私の場合、これはDebian更新スクリプトのバグが原因であるようです(そのため、問題はUbuntuでも発生する可能性があります)。どういうわけか、アップグレードプロセスが完了した後、一部のバイナリログファイルは誤った所有権で終了します。これにより、サーバーは自身のログへの書き込みアクセスを取得できなくなり、起動に失敗します。
Debian(少なくともサーバーでは)では、これらのファイルはすべて/var/lib/mysql
にあります。そこにあるものはすべて、ユーザーmysqlとグループmysqlが所有する必要があります。ただし、一部のファイルmysql-bin.*
は、アップグレード後にrootが所有していました。ログファイルの所有権をmysqlに戻すと、サーバーが正しく起動します。
# chown mysql:mysql /var/lib/mysql/mysql-bin.*
# /etc/init.d/mysql start
これが誰かの時間の節約になることを願っています。
以下をお試しください
mkdir /var/run/mysql
chown mysql:mysql /var/run/mysql
次に、mysqlを起動します...
最初にmysqlサーバーを起動します
次に、このコマンドを実行します
ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock
MySQLはおそらく起動に失敗しました。実行してみてくださいps aux | grep mysqld
mysqlデーモンのプロセスIDがあるかどうかを確認します。
Shaneのコメントをさらに詳しく説明するには、MySQLログで、開始に失敗した理由を確認してください。デフォルトの場所は/var/log/mysql/error.log