Docker连接本地MySQL数据库时出现的报错
·
问题引出
当我们将写好的web项目部署到Docker上之后,却发现无法成功运行,但是在本地测试的时候明明可以成功运行,这是为什么呢?
原来是我的服务器主机地址在开发时直接设置为localhost,在本地运行的时候可以直接通过他来找到数据库地址,但是在Docker里面不能够直接通过识别它来访问到我们的主机数据库,因此就出现了报错。
例如,你的数据库配置文件可能如下图所示
[database]
Db = mysql
DbHost = localhost
DbPort = 3306
DbUser = root
DbPassword = 123456
DbName = new_ginblog
解决方案
在将项目部署到Docker上之前修改 DbHost 的值为 host.docker.internal ,因为这是Docker 提供的一个特殊 DNS 名称,用于在容器内部访问宿主机(运行 Docker 的主机) 的网络服务,无需手动指定宿主机的 IP 地址,简化了本地开发环境中的容器与宿主机通信。
修改后的配置信息
[database]
Db = mysql
DbHost = host.docker.internal
DbPort = 3306
DbUser = root
DbPassword = 123456
DbName = new_ginblog
在这样修改之后就可以在Docker上面正常的运行了。
更多推荐



所有评论(0)