sql >> データベース >  >> RDS >> Mysql

PHPコードがリモートのMySqlデータベースに接続しないのはなぜですか?

    私が最初に確認することは(まだ行っていない場合)、PHPスクリプトを実行しているコンピューターから実際にデータベースに接続できることです。これは、ネットワークまたはファイアウォールの問題を除外するためのものです。

    まず、サーバーにpingを実行します。 DOSプロンプトで実行:

    ping servername
    

    ここで、「servername」は、上記のPHPスクリプトに入力したものと同じ文字列です。これが以下のような文字列で応答しない場合、具体的には、最初の単語は「応答」ではありません:

    Reply from 192.168.239.132: bytes=32 time=101ms TTL=124
    

    これは、PHPスクリプトを実行しているコンピューターとmysqlサーバーの間に接続がない可能性が高いことを意味します。次に、サーバーとコンピューターがネットワークに正しく接続されているかどうか、サーバーが稼働している場合、PHPスクリプトを実行しているコンピューターまたはサーバーにファイアウォールがないかどうかを確認します。

    これで、上記のテストでpingへの「応答」が表示された場合、phpサーバーからMysqlサービスに接続できるかどうかをテストできます。これには、Mysqlワークベンチ( http://dev.mysql.com/downloads/workbench/ )そしてそこから、スクリプトに与えているデータベースパラメータとの接続を作成します。 Mysqlワークベンチに接続できない場合は、Mysqlサーバーのファイアウォール、PHPを実行しているコンピューターのファイアウォールを無効にするか、MysqlサーバーがPHPスクリプトで使用するデータベースとユーザー名のリモート接続を受け入れるようにする必要があります(一部のディストリビューションMysqlサーバーは、安全のためにローカル接続のみを受け入れるようにインストールされています。

    問題がサーバーのアクセス許可である場合(たとえば、ユーザーはローカルにのみ接続でき、リモートコンピューターからは接続できません)、GRANTコマンドを使用してMysqlサーバーのアクセス許可を有効にできます。 http://dev.mysql.com/doc/refman/5.1/en/grant.html



    1. mysqlで正確な文字列を検索する方法

    2. SQL * Plusが終了時にコミットするのはなぜですか?

    3. SQLSentryはSentryOneになりました

    4. mysqljdbc接続文字列の特殊文字をエスケープする方法