WordPressの「データベース接続確立エラー」の根本原因は?

S 20231225 202918

macOS環境でWordPressを実行してみたところ「データベース接続確立エラー」が表示された。

wp-config.phpのDB_NAME、DB_USER、DB_PASSWORD、DB_HOSTに問題はなく、そのユーザー名やパスワードを使ってmysqlコマンドから接続できるのは確認済み。

Googleで検索してみると「DB_HOSTをlocalhostから127.0.0.1に変更すると良い」という情報が見つかったものの、普通はlocalhostで接続できるはずなので何かおかしいはず。

そこでPHP、MySQL、Apache等関連ソフトウェアの設定を確認してみたところ、php.iniを作成しておらず、pdo_mysql.default_socketとmysqli.default_socketのパスが設定できていないのを発見。php.iniを作成し、それぞれ正しく設定したら接続できるようになった。

[Pdo_mysql]
; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
pdo_mysql.default_socket= /opt/local/var/run/mysql8/mysqld.sock

(中略)

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/mysqli.default-socket
mysqli.default_socket = /opt/local/var/run/mysql8/mysqld.sock

localhostから127.0.0.1に変更したら接続できるというのは、UNIXソケットを使用しない接続方法に切り替えたら接続できるようになったということを意味しているのかもしれない。レンタルサーバーならその対処でよいかもしれないが、自分でサーバーを設置しているなら、(システムワイドな)設定ファイルの方を疑った方がよさそう。