誰か教えて!? MySQL ソケットエラー の解決方法 …
最近、朝起きて自分のブログ(WordPress)を確認すると「データベース接続エラー」が出ている事が頻繁(?)にあったりする訳ですが、この「データベース接続エラー」要するに
MySQLに接続できませんよ!?
という意味らしいのですけど、以前に書いた記事「WordPress データベース接続エラーの復旧作業」では、データベースそのものの不具合だった(wp_optionsというテーブルが壊れていた)ので「理由」があるから納得できるのですが
今回の「データベース接続エラー」は、どうやら?mysql.sockファイルが原因のようでして、WEBで解決方法を調べようとすると色々な記事が出てくるのですが
そもそもの原因が分からずじまい…
訂正:MySQL ソケットエラー の発生する原因を教えて
ソケットエラー の原因を教えて!なんて見出しを書きましたが、原因は「ソケットファイルがない」訳でして、デフォルトの場所( /var/lib/mysql )を確認すると
確かに
mysql.sock が見当たりません
この状態で MySQLを再起動させると
1 2 |
# mysql restart ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) |
この様にエラーになって再起動も出来ない状態なのですが、基本的にソケットファイルは「MySQLが起動時に自動で作成される」という情報がありましたので ※間違っていたら訂正コメント下さい <(_ _)>
MySQL ソケットエラーの解決方法
1 2 3 4 5 |
# service mysqld stop mysqld を停止中: [ OK ] # service mysqld start mysqld を起動中: [ OK ] |
こんな感じで、MySQLを再起動ではなく、停止 → 起動 とコマンドを打つと
あら不思議!?(爆)
普通に起動して、デフォルトの場所( /var/lib/mysql/ )には mysql.sock ファイルが作られているのです。
/var/lib/mysql/ にソケットファイル( mysql.sock )が見当たらなくて、WordPressが「データベース接続エラー」になっていた場合は、こんな感じで
MySQLを一旦停止後に起動すれば解決(WordPressも復旧)できるのですが
問題は…
何故?ソケットファイル( mysql.sock )が突然に消えてしまうのか?
なのです…(汗)
突然ソケットファイル( mysql.sock )が消える理由は?
念の為に /etc/my.cnf(MySQLの設定ファイル?)を確認して見ても(↓)この様にソケットファイルの指定は間違っていないと思うのですが…
1 2 |
[mysqld] socket=/var/lib/mysql/mysql.sock |
一応、WordPressの方の設定ファイル(wp-config.php)も確認。参考にしたサイト様では下記の様に書き換えてみるとイイ!とありましたので、書き換えてはみたものの
1 2 3 4 5 |
/** MySQL のホスト名 */ define('DB_HOST', 'localhost'); ↓書き換え define( 'DB_HOST', 'localhost:/var/lib/mysql/mysql.sock' ); |
デフォルトの場所( /var/lib/mysql/ )にあった(要するに正常にMySQLと WordPressが動作している状態) ソケットファイル( mysql.sock )が
突然消えてしまう理由(原因)
これはこういう(消える)ものなのですか?
と違う気もするのです…(汗)
この様に、今回は WordPressの方の設定ファイル(wp-config.php)を書き変えて様子見をしている状態なのですが、素人の自分が考える理由として
- MySQLを手動でアップデート時の設定?
- PHPを手動でアップデートした際の設定?
この二つが怪しいとも思っているのですが、色々なサイトを検索してみても対処方法が理解できません(涙)
この問題について対処方法(mysql.sockが突然消える原因と、その解決方法)が分かる方!是非、素人でも解り易く解説して頂けると嬉しいデス。コメント欄(お問い合わせ欄でも可)で結構ですので教えて下さい(切実)<(_ _)>
今回、参考にさせて頂いたサイト様
- mysqlが起動できない(Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2))
- MySQLでソケットエラーERROR 2002 (HY000)が発生する場合の解決法
- 【php】MySQLに接続するときにエラー発生
スポンサーリンク