Telnet経由でmysqlサーバーに接続しようとすると、次のエラーが発生します。
telnet localhost 3306
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote Host: Connection timed out
127.0.0.1、hostname
でもtelnetを試しましたが、同じエラーメッセージが表示されました。しかし、サーバーに接続したら、mysql -u username -p
に接続できます。
Netstatの結果は次のとおりです。
netstat -na | grep mysql
unix 2 [ ACC ] STREAM LISTENING 4540495 /var/run/mysqld/mysqld.sock
netstat -na | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
考えられる問題は何ですか?さらに詳細が必要な場合は、問題なく提供できます。
どうもありがとう。
接続できますか:
mysql -h127.0.0.1 -u username -p
そうでない場合は、サーバーが「スキップネットワーキング」を有効にして起動したかどうかを確認します。
サーバーが--skip-networkingで起動された場合、サーバーはTCP/IP接続をまったく受け入れません。 src
つまり、127.0.0.1は機能しませんが、localhostは機能します。 mysqlでは、localhostと127.0.0.1は異なるホストです。
その他の確認事項:
デフォルトのポート(3306)を実行していますか? my.cnfを確認するか、mysqladmin -h localhost -p variables | grep port
Linuxで実行していて、Security-Enhanced Linux(SELinux)が有効になっている場合は、mysqldプロセスのSELinux保護が無効になっていることを確認してください。
同じ問題が発生し、解決しました。私はmysqlクライアントとしてMac pro&sequel Proを使用していますが、ソケットlocalhost接続は成功しましたが、標準のtcp/ip接続は失敗しました!
そしてcmdを使用して実行中のポートを確認します:
mysqladmin -h localhost -u root -p variables | grep port
これが私の結果ステータスです:
wangxiaodeMacBook-Pro:~ wangxiao$ mysqladmin -h localhost -u root -p variables | grep port
Enter password:
| innodb_support_xa | ON |
| large_files_support | ON |
| port | 3307 |
| report_Host | |
| report_password | |
| report_port | 3307 |
| report_user |
デフォルトの3306ではなく3307を移植しています。別のmysqlサーバーがインストールされていました。それを変更して解決しました。 tks @DTestの回答。