恐慌:拨打 tcp 127.0.0.1:3306:连接:连接被拒绝
panic: dial tcp 127.0.0.1:3306: connect: connection refused
我正在尝试使用 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
}
我正在尝试使用 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
}