有些人可以告诉我如何连接我的mysql数据库,它在虚拟机上作为Docker中的容器运行吗?
我不知道,请帮助我。
我要做的是: - 我正在本地机器上编写一个java程序,现在我想与mysql建立一个jdbc连接。我的MySQL数据库作为虚拟机上的docker容器运行。
有人有任何想法。
Connection con = DriverManager.getConnection(“jdbc:mysql://10.0.2.15/ ”我应该放在什么地方“,”root“,”myrootpassword“);
我的容器的ip地址是172.17.0.2,我的guest ip是10.0.2.15。我的sql在端口3306上运行。
先谢谢
答案 0 :(得分:6)
您的docker容器应该能够将其mysql端口绑定到VM上的任何端口。您可以使用-p VMPort:containerPort
的{{1}}选项执行此操作。
https://docs.docker.com/engine/reference/run/#expose-incoming-ports
所以这个命令
docker run
将容器的3306端口发布到VM的3306端口。
此时你应该能够用
命中你的SQLdocker run -p 3306:3306 your-sql-container
我在VM上使用了您的VM地址和绑定端口。您应该将Connection con = DriverManager.getConnection("jdbc:mysql://10.0.2.15:3306/databaseName","root","myrootpassword");
替换为数据库的实际名称。
答案 1 :(得分:1)
您需要将数据库名称放在那里。
conn = DriverManager.getConnection("jdbc:mysql://hostname:port/dbname","username", "password");
查看this link
此外,在连接器中添加端口也没什么坏处。