我需要访问我在docker外创建的mysql数据库,但我得到一个错误,我怎么能访问我的数据库?
panic: failed to connect database
goroutine 1 [running]:
main.init.0()
/go/src/app/src/main.go:33 +0x12c
我不知道目前推荐的方法是什么,但这里是我过去在不同操作系统上的工作方法。
OSX: 设置mysql主机为 docker.for.mac.localhost
Windows:将mysql主机设置为 host.docker.internal
(这在OSX上应该也能用)
Linux:将mysql主机设置为 172.17.0.1
.
根据你安装mysql的方式,你可能需要找到它的 my.cnf
配置,并改变 bind_address
值为 0.0.0.0
.
一种方法是,把数据库的mysql转储,然后把这个文件复制到一个目录里面,路径是 $HOME/docker/volumes/mysql
的主机,并将其映射到docker容器上,并使用 --volume
标志。
mysqldump -u root -proot dnName > dbName.dat.sql
(将dbName替换为你的数据库名称).创建一个Mysql docker容器,使用volume标志将文件从主机映射到contanier,同时执行docker tun命令:(将dbName替换为你的数据库名称)。-v $HOME/docker/volumes/mysql:/var/lib/mysql
.mysql -u root -proot dbName < dbName.dat.sql
.