wordpressで記事を作成していた際、下記のエラーが表示され、はまってしまったのでその解決手順を備忘録として残すことにします。
参考程度にどうぞ。
上記のようなエラーページが表示された。
ひとまずデータベースに接続できていないことが分かったので、表示されている「wp-config.php」からデータベース接続に必要な情報を取得し、コンソールから接続を試みたら、下記のエラーが表示された。
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
socket?なんかわかんないので、ちょっと検索してみたら、socketファイルがないのが問題なんじゃないかと思い、下記コマンド実行
ひとまずファイルの存在チェックをします。
ls -al /var/lib/mysql/ | grep mysql
確かにファイルが存在していなかったので作成
sudo touch /var/lib/mysql/mysql.sock
mysqlの再起動を実行
sudo /etc/init.d/mysqld restart
再起動した際に下記のエラーが発生。(失敗した際にmysql.sockも消えた…)
Starting mysqld:[FAILED]
何で失敗したかよくわからないので、logを確認。
sudo tail -f /var/log/mysqld.log
いろいろ出ていたが下記が気になったので検索。
InnoDB: Fatal error: cannot allocate memory for the buffer pool
InnoDBがメモリ超過で落ちた模様。
/etc/my.cnfで割り当て量とか制御しているようなのでこちらに下記を記載。
innodb_buffer_pool_size = 16M
innodb_log_file_size = 2M
innodb_log_file_size = 2M
※サイズは環境に合わせて適宜。
※デフォルトサイズは
innodb_buffer_pool_size = 8M
また、サイズを上げる際は両方ともサイズアップしないとパフォーマンスが出ない様なので、注意が必要です。
/var/lib/mysql配下の
ib_logfile0
ib_logfile1
これらのファイルを削除。
mysqlの再起動を実行
sudo /etc/init.d/mysqld restart
無事mysqlが立ちあがり、今回のケースは解決しました。