web-dev-qa-db-ja.com

リモートホストに接続できません:MySQLにtelnetしようとすると接続がタイムアウトしましたか?

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  

考えられる問題は何ですか?さらに詳細が必要な場合は、問題なく提供できます。

どうもありがとう。

3
Bakhtiyor

接続できますか:

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保護が無効になっていることを確認してください。

3
DTest

同じ問題が発生し、解決しました。私は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の回答。

1
南无增