「MySQL」カテゴリーアーカイブ

WordPressでデータベース接続確立エラーが急に出たよ!

久しぶりにWordPressサイトを見ようとすると「データベース接続確立エラー」が表示されました!!よくある原因としてはWordPress設定ファイル(wp-config.php)を変えてしまった。もしくは、MySQLのパスワードを変えてしまったことらしいです。

しかし、自分では変えていないので、もしかするとサーバーが攻撃されてしまった!大変です!

ちなみにWordPressサイトに接続すると以下のように表示されます。

英語設定の場合は「Error establishing a database connection」と表示されます。

Error establishing a database connection

まずはwp-config.phpを確認しましょう。大丈夫でした!

次にMySQLにログインしようとすると、

# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

もうわかりましたね♪ MySQLのソケットが消えちゃってました・・・

でもまた何でそんな事が起こるのか???ソケットを復旧させるとWordPressの更新が走りました。

どうもWordPress更新の時にMySQLのソケットが消えるトラブルは起きやすいようです。

復旧方法は以下を参照下さい↓ めでたし♪

MySQLでソケットエラーERROR 2002 (HY000)が発生する場合の解決法

MySQLデータベースを更新する

WordPressでログインが出来なくなった場合に復旧のため直接MySQLデータベースを更新する必要があります。

もしもの時のためにコマンドラインからMySQLデータベースを更新する方法を調べてみました。

# mysql -u root -p
Enter password:
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| test               |
| wp_test            |
| wp_sample          |
+--------------------+
9 rows in set (0.00 sec)
■WordPressのデータベースに接続する
mysql> use wp_test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

■テーブル一覧を表示する
mysql> show tables;
+-----------------------------+
| Tables_in_wp_test           |
+-----------------------------+
| wp_test_commentmeta         |
| wp_test_comments            |
| wp_test_links               |
| wp_test_mappress_maps       |
| wp_test_mappress_posts      |
| wp_test_options             |
| wp_test_postmeta            |
| wp_test_posts               |
| wp_test_term_relationships  |
| wp_test_term_taxonomy       |
| wp_test_termmeta            |
| wp_test_terms               |
| wp_test_usermeta            |
| wp_test_users               |
+-----------------------------+
14 rows in set (0.00 sec)

■「siteurl」「home」の内容を確認する。
mysql> select * from wp_test_options where option_name = 'siteurl';
+-----------+-------------+--------------------------+----------+
| option_id | option_name | option_value             | autoload |
+-----------+-------------+--------------------------+----------+
|         1 | siteurl     | https://horiejoho.dip.jp | yes      |
+-----------+-------------+--------------------------+----------+
1 row in set (0.00 sec)

mysql> select * from wp_test_options where option_name = 'home';
+-----------+-------------+--------------------------+----------+
| option_id | option_name | option_value             | autoload |
+-----------+-------------+--------------------------+----------+
|         2 | home        | https://horiejoho.dip.jp | yes      |
+-----------+-------------+--------------------------+----------+
1 row in set (0.00 sec)

■「siteurl」を変更してみます
mysql> update wp_test_options set option_value = 'https://horiejoho.dip.jp/wp/' where option_name = 'siteurl';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

■変更されているか確認します
mysql> select * from wp_test_options where option_name = 'siteurl';
+-----------+-------------+------------------------------+----------+
| option_id | option_name | option_value                 | autoload |
+-----------+-------------+------------------------------+----------+
|         1 | siteurl     | https://horiejoho.dip.jp/wp/ | yes      |
+-----------+-------------+------------------------------+----------+
1 row in set (0.00 sec)

■元に戻しておきましょうね
mysql> update wp_test_options set option_value = 'https://horiejoho.dip.jp' where option_name = 'siteurl';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

■「siteurl」が元に戻っていることを確認します
mysql> select * from wp_test_options where option_name = 'siteurl';
+-----------+-------------+--------------------------+----------+
| option_id | option_name | option_value             | autoload |
+-----------+-------------+--------------------------+----------+
|         1 | siteurl     | https://horiejoho.dip.jp | yes      |
+-----------+-------------+--------------------------+----------+
1 row in set (0.00 sec)

mysql> exit
Bye

「home」を変更する場合は、「siteurl」を「home」に変更して下さい。

MySQLのデータベースへ接続する方法

MySQLのデータベースへ接続する方法です。MySQLへログインしたら、データベース一覧を表示します。
接続するデータベース名を確認したら、「use データベース名」コマンドを使用して接続します。

# mysql -u root -p
Enter password:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| test               |
| wp_test            |
| wp_sample          |
+--------------------+
9 rows in set (0.00 sec)

mysql> use wp_test;
Database changed

簡単でしたね♪