Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
サーバ環境でMysqlを使用しているのですが、サービス停止「$service mysqld stop」をすると上記タイトルのようなエラーが表示されてしまい、Mysqlも起動・停止できない状態となってしまいました。
それで解決したので備忘録として記載します。
状況
Google等で検索すると「Can’t connect to local MySQL server through socketでMySQLに接続できない」といったような内容が記載されており、ソケット管理の為のファイルパスが悪いうんぬん・・・と紹介されており、同様のエラーメッセージが端末表示されていました。
参考させていただいたサイトではファイルパス修正後、「Mysqlの停止・起動」と記載されていたのですが、私の場合はまず「Mysqlの停止ができない」状況でした。
$service mysqld stop
mysqlを無理やりkillで停止したのですが、それでも起動はできず。逆に「service mysqld start」をすると、暫く応答がない後に「ended」のようなメッセージが表示される始末。
Mysql停止コマンド
service mysqld stop /etc/init.d/mysqld stop mysqladmin -h [HOST IP] shutdown
上記コマンドでも停止できませんでした。
エラーログ
ログを見る事にしましたCentOSのrpmではMysqlログは「/var/log/mysqld.log」に吐き出されます。
ログ内容は以下。
041124 18:38:53 Can't start server: Bind on TCP/IP port: Address already in use 041124 18:38:53 Do you already have another mysqld server running on port: 3306 ? 041124 18:38:53 Can't start server: Bind on TCP/IP port: Address already in use 041124 18:38:53 Do you already have another mysqld server running on port: 3306 ? 041124 18:38:53 Can't start server: Bind on TCP/IP port: Address already in use 041124 18:38:53 Do you already have another mysqld server running on port: 3306 ? 041124 18:38:53 Aborting 041124 18:38:53 mysqld: Shutdown Complete
サーバの再起動はできるだけしたくなかったので、何か対策がないか調べていました。
実際に参考になったサイトURLが分からなくなってしまったのですが、以下でMysqlを無理やり停止できました。
$killall mysqld
その後、Mysqlを再起動
$service mysqld start
これで、Mysqlが起動できました。次に接続。
$mysql -u [ユーザ] -p [データベース名] >password? [パスワード]
- 参考サイト:
- アベログ様
- weblogy様
- directadmin
[…] 以下は起動できなくなった場合の対処法。 Mysql起動・停止・接続できない現象 […]