現象
ローカル環境にて、PHPからmysqlに接続を試みると、稀に接続を拒否される
・mysql.server start
にてサーバーを立てた直後は接続に成功する
・最後のアクセスから少し時間をおくと、接続を拒否される場合がある
・一度接続を拒否されると、一度サーバーを閉じるか、一定時間置かないと再度アクセスが出来ない
・現状接続を拒否されるタイミングに法則性は見つかっていない
・接続が拒否される場合、タイムアウトのようなラグはなく、即座に接続拒否のエラーが返ります。
発生しているエラー
- PHP
SQLSTATE[HY000] [2002] Connection refused
- MySQL
general_log及びlog-errorを確認したところ、記述なし。
該当コード箇所
php
1self::$Database = new \PDO( 2 "mysql:dbname=xxxx;host=". $_ENV["HOSTNAME"] . ";charset=utf8mb4" . $_ENV["OPTION"], 3 $_ENV["ID"], 4 $_ENV["PASSWORD"] 5);
※dbnameはマスキングしています。
$_ENV["HOSTNAME"],$_ENV["ID"],$_ENV["PASSWORD"]はそれぞれホスト名、データベースのID,パスが代入されています。
また、optionにはshow variables like 'port';
にて取得したポート番号が代入されています。
質問内容
PHPで接続拒否されることを防ぎたいのですが、何か改善方法はないでしょうか?
環境
macos 10.15.6
php 7.4.9
mysql 8.0.19(homebrew installed)
なお、ウェブサーバーはphp -S
にて立てており、ホスト名は192から始まるローカルIPで接続しています。
mysqlのホスト名は、macのローカルホスト名.local
になっています。
ただ、ウェブサーバーをローカルホスト名.local:8080
にしても上記の現象は発生します。
回答2件
あなたの回答
tips
プレビュー