ホームページ >バックエンド開発 >PHPチュートリアル >PHP 警告: mysqli_connect(): (HY000/2002): 接続が拒否された場合の解決策
PHP を使用して MySQL データベースに接続するときに次のエラー メッセージが表示された場合:
PHP 警告: mysqli_connect(): (HY000/2002): 接続が拒否されました
その後、次のことができます。この問題を解決するには、次の手順を試してください。
まず、MySQL サービスが正常に実行されているかどうかを確認する必要があります。サービスが実行されていない場合、または開始に失敗した場合は、接続拒否エラーが発生する可能性があります。次のコマンドを使用して、MySQL サービスのステータスを確認できます。
$ systemctl status mysql.service
MySQL サービスが実行されていない場合は、次のコマンドを使用してservice:
$ systemctl start mysql.service
MySQL サービスがすでに実行されている場合、MySQL サービスが正しいポートでリッスンしているかどうかを確認する必要があります。デフォルトでは、MySQL サービスのリスニング ポートは 3306 です。次のコマンドを使用して、MySQL サービスによってバインドされているポートを確認できます:
$ netstat -an | grep 3306
MySQL サービスが正しいポートにバインドされていない場合は、設定する必要があります。 MySQL 構成ファイル (my.cnf) に次の行を追加します。
[mysqld]
port=3306
構成ファイルを変更した後、MySQL を再起動する必要があります。変更を有効にするためのサービス:
$ systemctl restart mysql.service
MySQL サービスの場合が正しく実行されており、正しいポートでリッスンしている場合は、ユーザーの名前とパスワードが正しいかどうかを確認する必要があります。 MySQL に接続するときは、正しいユーザー名とパスワードを使用して MySQL サーバーにログインする必要があります。ユーザー名とパスワードが正しいかどうかわからない場合は、MySQL コマンド ライン インターフェイスで次のユーザー名とパスワードを使用してログインを試みることができます:
$ mysql -u username -p
このコマンドでは、「username」を使用するユーザー名に置き換え、このユーザーのパスワードを入力して MySQL サーバーにログインする必要があります。ログインが成功した場合は、入力したユーザー名とパスワードが正しいことを意味します。
最後のステップは、MySQL に接続しているユーザーが、使用する必要のあるデータベースにアクセスするための十分な権限を持っているかどうかを確認することです。 。 MySQL サーバーに接続するときは、接続先のデータベースの名前を指定する必要があります。指定したデータベースが存在しない場合、またはデータベースへのアクセス権限がない場合、接続は拒否されます。
次のコマンドを使用して、MySQL ユーザーの権限を確認できます:
$ mysql -u username -p -e "SHOW GRANTS FOR username;"
この例では、コマンドでは、「username」を、権限を照会する MySQL ユーザーに置き換える必要があります。このコマンドを実行すると、このユーザーが持つ権限を確認できます。
アクセスしたいデータベースが存在しないか、アクセス権限がない場合は、MySQL コマンドライン インターフェイスで次のコマンドを使用して、アクセス権限を作成または付与する必要があります:
CREATE DATABASE dbname;
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';
このコマンドでは、「dbname」を作成するデータベースの名前に置き換える必要があります。 「username」は、MySQL ユーザー名を認証するデータベースの名前に置き換えます。
概要
上記の手順により、PHP 警告: mysqli_connect(): (HY000/2002): 接続が拒否されました エラーを解決できるはずです。まず、MySQL サービスが開始されており、正しいポートでリッスンしているかどうかを確認する必要があります。次に、入力されたユーザー名とパスワードが正しいかどうかを確認する必要があります。最後に、MySQL ユーザーに次の権限があるかどうかを確認する必要があります。データベースにアクセスします。
以上がPHP 警告: mysqli_connect(): (HY000/2002): 接続が拒否された場合の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。