我如何从docker中访问数据库?

问题描述 投票:0回答:1

我需要访问我在docker外创建的mysql数据库,但我得到一个错误,我怎么能访问我的数据库?

panic: failed to connect database
goroutine 1 [running]:
main.init.0()
    /go/src/app/src/main.go:33 +0x12c 
mysql docker go gorm
1个回答
1
投票

我不知道目前推荐的方法是什么,但这里是我过去在不同操作系统上的工作方法。

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.


0
投票

一种方法是,把数据库的mysql转储,然后把这个文件复制到一个目录里面,路径是 $HOME/docker/volumes/mysql 的主机,并将其映射到docker容器上,并使用 --volume 标志。

  1. 通过执行这个命令来转储数据库。mysqldump -u root -proot dnName > dbName.dat.sql (将dbName替换为你的数据库名称).创建一个Mysql docker容器,使用volume标志将文件从主机映射到contanier,同时执行docker tun命令:(将dbName替换为你的数据库名称)。
  2. 创建一个Mysql docker容器,在执行docker tun命令时,使用volume标志将文件从主机映射到contanier。-v $HOME/docker/volumes/mysql:/var/lib/mysql.
  3. 导入该dumo到容器的mysql . mysql -u root -proot dbName < dbName.dat.sql.
© www.soinside.com 2019 - 2024. All rights reserved.