データベース接続確立エラーまとめ

前書き(独り言なので読み飛ばしても構いません

CentOSにMariaDBをインストールする を参考に

ESXiホストの名前変更をしてWeb Serverとローカルネットワークに接続するVMにMariaDB10.5.9をインストールしてWordpressのデータベースを作成しました。

WebサーバーからWordpressインストール画面でwp-config.phpの設定から先のステップに進もうとしたところ「データベース接続確立エラー」で悶絶した経緯をメモします。

データベース名 wordpress
ユーザー名 wordpress
パスワード パスワード
データベースのホスト名 172.16.1.100

ファイアウォールがデータベースのポートを許可するように設定してみましたが接続できませんでした。

centos7 mysql 外部接続を許可しよう – Qiita

# firewall-cmd --add-service=mysql --zone=public --permanent
# firewall-cmd --reload

エラーの原因を特定するためにwp-config-sample.php でデバッグオプションを有効にする

define( 'WP_DEBUG', true );

デバッグを有効に設定するとインストール画面にヒントらしきエラーメッセージが・・・。

mysqli::mysqli(): (HY000/2002): Permission denied

PHP – MySQLサーバへの接続ができません。mysqli::mysqli(): (HY000/2002): Permission denied|teratail

FAQにある通り、SELinux をenforce 0 にしたところインストール画面に進みました。

詳しく調べてみるとCentOSのデフォルトのポリシー httpd_can_network_connect が無効なためにおこるエラーとのことでした。
以下のコマンドsetsebool -Pオプションで永続的に有効にすると幸せになれました。

$ sudo setsebool -P httpd_can_network_connect 1

困ったときはデバッグログ、有効にしよう!(直球

参考URL : CentOS ApacheのSELinux – GreenLeaf

「SELinuxのせいで動かない」撲滅ガイド – Qiita

同じカテゴリーの記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です