docker-compose 容器间通信,连不上mysql

发布于 2022-09-12 02:30:53 字数 1296 浏览 19 评论 0

docker-compose 部署golang,mysql, 远程,127.0.0.1均可访问容器mysql, 但go容器里连不上. docker-compose.yaml文件如下:

version: '2'
services:
  order_mysql:
    networks:
      - test_network
    image: mysql
    command: --default-authentication-plugin=mysql_native_password 
    container_name: "order_mysql"
    ports:
      - "3333:3306"
    expose:
      - "3306"
    environment:
      MYSQL_DATABASE: order
      MYSQL_USER: root
      MYSQL_PASSWORD: 123456
      TZ: Asia/Shanghai 
    restart: always
    volumes:
      - "./mysql/db:/var/lib/mysql"
      - "./mysql/conf/my.cnf:/etc/my.cnf"
      - "./mysql/init:/docker-entrypoint-initdb.d/"

  order_redis:
    image: redis
    command: --requirepass 12345678
    container_name: "order_redis"
    ports:
      - "6666:6379"
    volumes:
      - "./redis:/var/lib/redis"
    networks:
      - test_network
  order_golang:
    depends_on:
      - order_mysql
      - order_redis
    build: .
    ports:
      - "2020:2020"
    tty: true
    networks:
      - test_network
    links:
      - order_mysql:order_mysql
      - order_redis:order_redis

networks:
  test_network:
  

host使用的是别名order_mysql的地址, 网段也分配了,order_golang容器编译没问题,容器连mysql怎么连不上

dial tcp 172.21.0.2:3306: connect: connection refused

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

锦欢 2022-09-19 02:30:53

给 MySql 的部分加个 command --default-authentication-plugin=mysql_native_password

或者你指定一下 mysql 的镜像版本为 5.7 及以前。

书间行客 2022-09-19 02:30:53

docker的depends_on只是先启动而已,并不能保证启动成功
主要还是golang的代码有问题吧,golang连接数据库是自带线程池和重连的,应该是只要打log报错就好了,不需要直接停止服务

女尤 2022-09-19 02:30:53

你好 我试了加command --default-authentication-plugin=mysql_native_password但是还是连接不上 connect: connection refused

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文