Docker:无法连接容器中的mysql
天蓬老师
天蓬老师 2017-04-22 08:59:30
0
3
1519
  • 环境

    • Macbook pro 10.10

    • DockerToolbox 1.8 & Docker 1.8.2

  • 先看一下错误输出吧

$ 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
  • 宿主机的IP

$ 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

$ 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

$ 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允许任意IP连接

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 | +------------------+--------------+-------------------------------------------+
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

reply all (3)
小葫芦

Suddenly I remembered that I had encountered this situation before using vagrant, but the report was2013-Lost connection to MySQL server at ‘reading initial communication packetError => Watching

  1. Open mysql configuration filesudo vim /etc/mysql/my.cnf

  2. Findbind-address, change 127.0.0.1 to 0.0.0.0 or comment out the line

  3. Restart mysql

I tried it and it’s normal

    左手右手慢动作

    Is the host’s firewall turned on? sudo service iptables status and see.

    Execute sudo netstat -lnp | grep 3306 on the host machine to see which process is using port 3306.

      洪涛
      docker run --name djistore_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6.27 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

      Connect to the MySQL service

      mysql -h 192.168.99.100 -u root -p

      Related logs

      ➜ ~ mysql -h 192.168.99.100 -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.27 MySQL Community Server (GPL) Copyright (c) 2000, 2016, 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> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.01 sec)
        Latest Downloads
        More>
        Web Effects
        Website Source Code
        Website Materials
        Front End Template
        About us Disclaimer Sitemap
        php.cn:Public welfare online PHP training,Help PHP learners grow quickly!