すでに多くの人がこれを尋ねていることは知っていますが、この人はほとんどファイアウォールによってブロックされたパスワードを忘れており、私にはこのような状況はありません。
私はphpで開発しており、すべてのチームが作業できるようにリモートデータベースに接続する必要があります。
ローカルホストはうまくいっていましたが、切り替えようとするとこのエラーが発生しました
ターゲットマシンが積極的に拒否したため、接続できませんでした。
これは、.nf.bizデータベースに接続したい私のコードです:
$db=mysqli_connect($Host,$user,$password,$db_name,3306);
まあこれは遅いかもしれませんが、将来の訪問者のために、
当時、biz.nfは、外部ソースからのDBへの接続を拒否していることがわかりました。つまり、Webのみ- biz.nfでホストされているアプリは、拒否される以外のDBにアクセスできます。
MySQLサーバーは、* nixソケット(Ubuntuを実行している場合は/var/run/mysqld/mysqld.sock)またはローカルホストでのみ接続を受け入れます。
My.cnf(Ubuntuでは再び/etc/mysql/my.cnfにあります)を編集し、以下を変更する必要があります。
bind-address = 0.0.0.0
そして、以下をコメントアウトします
#skip-networking
最後にMySQLを再起動します。
MySQLマシンがパブリックインターネットからアクセス可能である場合は、すべての人からの接続を受け入れることに注意してください。
これが当てはまらない場合でも、このバグのメッセージは同じであるため、ここに回答を追加します。
C:\ Windows\System32\Drivers\etc\hostsにlocalhostのエイリアスがある場合、MySQLサーバーにバグがあり、MySQLサーバーはlocalhostへの接続を受け入れることができません。
エイリアスを削除すると、MySQLサーバーはローカルホストへの接続の受け入れを開始します。
I しない#skip-networkingオプションがあります。
バインドアドレス行をハッシュ化することで解決しました(以下の3行目を参照)。
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.**
#bind-address = 127.0.0.1
次のようにbind-addressにポートを追加するだけで解決しました:127.0.0.1:3388
このエラーは、データベースが応答していないときに発生します。
次の手順でこのエラーを解決します。
これは私にとってはうまくいきます。エラーも解決されることを願っています。私にメールしてください:[email protected]
Windows 10でWamp(php7)を使用しています...現在動作していますが、突然そのエラーが表示されました。ラップトップを再起動しましたが、エラーはなくなりました...
My.cnfのbind-addressをサーバーのpublic IPアドレスに設定することで、これを修正しました。
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = SERVER_IP_ADDRESS