mysql - panic : dial tcp 127. 0.0.1:3306: 连接: 连接被拒绝

标签 mysql docker tcp docker-compose go-gorm

我正在尝试使用 golang gin gorm 从 docker 连接 mysql 服务器。

构建本身已经成功,但是如标题所示,出现了以下错误。

panic: dial tcp 127.0.0.1:3306: connect: connection refused

尝试以这种方式连接

func dbConnect() *gorm.DB {
    db, err := gorm.Open("mysql", "docker:password@/godocker")

    if err != nil {
        panic(err.Error())
    }

    return db
}

  • docker-compose.yml
db:
    image: mysql:5.7.26
    environment:
      MYSQL_USER: docker
      MYSQL_ROOT_PASSWORD: password
      MYSQL_PASSWORD: password
      MYSQL_DATABASE: godocker
    ports:
      - "3306:3306"

点击docker-compose ps命令的结果

      Name                   Command             State                 Ports
------------------------------------------------------------------------------------------
gin-docker_api_1   /bin/sh -c gin -i run         Up      0.0.0.0:3001->3001/tcp
gin-docker_db_1    docker-entrypoint.sh mysqld   Up      0.0.0.0:3306->3306/tcp, 33060/tcp

谢谢

最佳答案

您应该通过容器名称进行连接

db:
  image: mysql:5.7.26
  container_name: godockerDB
  environment:
    MYSQL_USER: docker
    MYSQL_ROOT_PASSWORD: password
    MYSQL_PASSWORD: password
    MYSQL_DATABASE: godocker
  ports:
    - "3306:3306"

然后就可以通过容器名称进行连接

func dbConnect() *gorm.DB {
db, err := gorm.Open("mysql", "docker:password@tcp(godockerDB)/godocker")

if err != nil {
    panic(err.Error())
}

    return db
}

关于mysql - panic : dial tcp 127. 0.0.1:3306: 连接: 连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57566060/

相关文章:

mysql - 在 Windows 7 上重新启动 mysql 服务器

mysql - 防止空密码登录MySQL

c - 使用套接字通过 Tcp/IP 发送消息

python - 有没有办法通过 PyCharm 修改 docker 内的文件?

image - gitlab ci yml 图像和服务机制?

tcp - Solr 关闭与 Zookeeper 的连接

windows - DLL 建立的 TCP 连接的 QoS

php - MySQL数据库不同的插入

php - 动态增加的可行性。数据库中的表和行

docker - 重新启动计算机时,docker容器是否被破坏?