V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
peitaobest
V2EX  ›  MySQL

mysql 宿主机没有办法访问的问题

  •  
  •   peitaobest · 2 天前 · 738 次点击

    docker 中 mysql 的服务正常 root@Temak:/# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fa56afd0a5c5 mysql:8.0.20 "docker-entrypoint.s…" 57 minutes ago Up 14 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql8 端口 3306 也没有被占用 root@Temak:/# sudo netstat -tuln | grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
    tcp6 0 0 :::3306 :::* LISTEN
    宿主机 root@Temak:/# telnet 127.0.0.1 3306 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 但是宿主机访问 docker 中的 mysql root@Temak:/# mysql -u root -p -h 127.0.0.1 -P 3306 Enter password: ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 docker 中 mysql 的日志: 2025-01-04T02:18:41.937188Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.20) starting as process 1 2025-01-04T02:18:41.948132Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2025-01-04T02:18:42.188458Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2025-01-04T02:18:42.302034Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060 2025-01-04T02:18:42.341277Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2025-01-04T02:18:42.342798Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. 2025-01-04T02:18:42.359459Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.20' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. 请问大神如何解决宿主机访问 docker 中的 mysql

    4 条回复    2025-01-06 09:41:53 +08:00
    bjfane
        1
    bjfane  
       2 天前
    docker 网络的问题, 用 host 模式,或者 ipvlan 或者 macvlan 能解决,host 模式最简单。
    这种目录需要外挂的,放 docker 有点风险,常备份。
    julyclyde
        2
    julyclyde  
       1 天前
    1 mysql 里 localhost 和 127 是两码事
    2 容器和宿主机是两台机器,不是同一台
    peitaobest
        3
    peitaobest  
    OP
       1 天前
    谢谢,已解决,谢谢!是的,测试环境先这么用,生产环境这样子使用的话还是有风险的。
    guanzhangzhang
        4
    guanzhangzhang  
       5 小时 28 分钟前
    找到 docker-proxy 的 3306 的 pid
    xargs -0 -n1 < /proc/<pid>/cmdline
    看转发到的容器 ip 地址是多少
    nsenter 或者 docker exec mysql 容器看看容器 ip 是否一致
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5640 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 07:10 · PVG 15:10 · LAX 23:10 · JFK 02:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.