使用Docker创建Mysql镜像时报错connect ECONNREFUSED 127.0.0.1:3306
出现这种问题可能有两种情况
系统hosts文件中没有给本地127.0.0.1配置相应的转译host名
- 首先查看项目数据库配置文件
{
"username": "******",
"password": "*******",
"database": "**********",
"host": "db",//这里是数据库访问的地址
"logging": null,
"dialect": "mysql",
"dialectOptions": {
"dateStrings": true,
"typeCast": true
},
"timezone": "+08:00"
}
- 在查看hosts配置文件
如果是mac os系统,hosts文件路径在/etx/hosts
打开文件可以查看地址配置
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 db//添加这条配置,将mysql host与localhost地址对应
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
- 最后重新启动数据库,问题解决
如果问题没有解决,可能是下面的原因
docker容器中的无用数据卷过多需要清理
下载portainer–docker可视化界面,在界面中清理无用数据卷(新手推荐)
- 先下载portainer镜像
docker pull portainer/portainer
- pull完成后,启动portainer
docker run -d -p 9000:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--name prtainer-test \
portainer/portainer
- 登陆docker本地容器,进行数据卷删除
用指令删除数据卷
docker volume rm $(docker volume ls -q)
在使用Docker创建MySQL镜像时遇到connect ECONNREFUSED 127.0.0.1:3306的错误。该问题可能由于系统hosts文件未配置127.0.0.1的主机名,或Docker容器内无用数据卷过多导致。检查hosts文件并确保正确配置,对于Mac OS系统,hosts文件位于/etc/hosts。若问题依然存在,可通过Portainer这个Docker可视化界面来清理无用数据卷,或者直接使用Docker命令行删除数据卷。
4万+

被折叠的 条评论
为什么被折叠?



