検索

ホームページ  >  に質問  >  本文

Docker:无法连接容器中的mysql

$ mysql -uroot -p -h192.168.99.100 -P3306        
Enter password: 
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.99.100' (61)

$ mysqladmin -h192.168.99.100 --port=3306 version                                                                                                                                                      127 ↵
mysqladmin: connect to server at '192.168.99.100' failed
error: 'Can't connect to MySQL server on '192.168.99.100' (61)'
Check that mysqld is running on 192.168.99.100 and that the port is 3306.
You can check this by doing 'telnet 192.168.99.100 3306'

DEBUG的过程

$ docker ps -l 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
b20584bc086e        sunzy/mysql         "/usr/bin/mysqld_safe"   21 minutes ago      Up 21 minutes       0.0.0.0:3306->3306/tcp   mysql
$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default   *        virtualbox   Running   tcp://192.168.99.100:2376   
$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default   *        virtualbox   Running   tcp://192.168.99.100:2376   
$ ping 192.168.99.100                                                                                                                                                                                    1 ↵
PING 192.168.99.100 (192.168.99.100): 56 data bytes
64 bytes from 192.168.99.100: icmp_seq=0 ttl=64 time=0.347 ms
64 bytes from 192.168.99.100: icmp_seq=1 ttl=64 time=0.388 ms
64 bytes from 192.168.99.100: icmp_seq=2 ttl=64 time=0.272 ms
$ telnet 192.168.99.100 3306                                                                                                                                                                             1 ↵
Trying 192.168.99.100...
telnet: connect to address 192.168.99.100: Connection refused
telnet: Unable to connect to remote host
# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.44-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
mysql> 
mysql> select user,host,password from mysql.user;
+------------------+--------------+-------------------------------------------+
| user             | host         | password                                  |
+------------------+--------------+-------------------------------------------+
| root             | localhost    | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root             | e611e15f9c9d | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root             | 127.0.0.1    | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root             | ::1          |                                           |
| debian-sys-maint | localhost    | *1BD91232C0D2D2B5500129217CEF09B7EE71ABEC |
| root             | %            | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------------------+--------------+-------------------------------------------+
天蓬老师天蓬老师2777日前1602

全員に返信(3)返信します

  • 高洛峰

    高洛峰2017-04-22 09:01:30

    突然、vagrant を使用する前にこの状況に遭遇したことを思い出しましたが、そのレポートは 2013-Lost connection to MySQL Server at 'readingInitial communication packetError => Watching

    1. mysql設定ファイルを開くsudo vim /etc/mysql/my.cnf

    2. バインドアドレスを見つけて、127.0.0.1を0.0.0.0に変更するか、行をコメントアウトしてください

    3. mysqlを再起動

    試してみたら普通でした

    返事
    0
  • ringa_lee

    ringa_lee2017-04-22 09:01:30

    ホストのファイアウォールはオンになっていますか? sudo サービスの iptables ステータスを確認してください。

    ホストマシンで sudo netstat -lnp | grep 3306 を実行して、どのプロセスがポート 3306 を使用しているかを確認します。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-22 09:01:30

    リーリー

    MySQL サービスに接続します

    リーリー

    関連ログ

    リーリー

    返事
    0
  • キャンセル返事