Navicat の新しいデータベースを構成した後、接続テストをクリックすると常に 10038 エラーが発生し、データベースに入ることができません。PHP ファイルをアップロードして、サーバー上のデータベース 、テスト、サーバー内で mysql に正常にアクセスできます win の cmd dos ウィンドウを使用してテストしました 外部ネットワークからは Mysql にアクセスできません つまり、サーバーの内部ネットワークには正常にアクセスできます、しかし外部ネットワークではできません。具体的な解決策を次に示します。
推奨チュートリアル: MySQL データベース入門ビデオ チュートリアル
外部ネットワーク アクセスを許可するように mysql サービスを設定する、Mysql 設定ファイルを変更します。一部は my.ini、一部は my.cnf[linux].
1: mysql 設定ファイルを設定します
/etc/mysql/my.cnf
バインドアドレス =127.0.0.1 を見つけます
コメントアウトします; / /Function これは、ローカル アクセスのみが許可されなくなったことを意味します。
は、bind-address =0.0.0.0
に変更することもできます。mysql を再起動します: / etc/init.d /mysql restart;
2: Linux 側の mysql データベースにログインします: mysql -u root -p
mysql> use mysql;
クエリホスト値:
mysql> select user,host from user;
ホスト値に「%」がない場合は、次の 2 つの文を実行します:
mysql> update user set host='%' where user='root';
mysql> フラッシュ権限;
これは変更後の状況です
変更後、テストしましたが、やはり同じエラーが発生しました。 サーバーのファイアウォールがオフになっていないことが分かりました。ファイアウォールをオフにすると正常に接続できるようになります
#ファイアウォールの開閉方法を添付しますLINUX ファイアウォールの開閉方法
1) 再起動後に有効になります chkconfig iptables onをオンにします。
オフにする: chkconfig iptables off 2) すぐに有効になり、再起動すると無効になります 開始: service iptables start Close: service iptables stop 上記のコマンドは、Linux 上で他のサービスを開いたり閉じたりするために使用できることに注意してください。 ファイアウォールが有効になっている場合は、次の設定を行い、該当するポートを開きます。 /etc/sysconfig/iptables ファイルを変更し、次の内容を追加します。 -A RH-Firewall -1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp - p tcp --dport 22 -j ACCEPT以上がnavicat がエラー 10038 を報告するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。