Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何连接docker中作为容器运行的MySQL DB?_Java_Mysql_Docker_Jdbc - Fatal编程技术网

Java 如何连接docker中作为容器运行的MySQL DB?

Java 如何连接docker中作为容器运行的MySQL DB?,java,mysql,docker,jdbc,Java,Mysql,Docker,Jdbc,有人能告诉我如何连接mysql数据库吗?mysql数据库是作为虚拟机上Docker中的容器运行的 我不知道,请帮帮我 我想做的是:-我正在本地机器上编写一个java程序,现在我想与mysql建立一个jdbc连接。My MySQL DB在虚拟机上作为docker容器运行 有人知道吗 Connection con=DriverManager.getConnection(“jdbc:mysql://10.0.2.15/“我应该在这里放什么”,“root”,“myrootpassword”) 我的容器i

有人能告诉我如何连接mysql数据库吗?mysql数据库是作为虚拟机上Docker中的容器运行的

我不知道,请帮帮我

我想做的是:-我正在本地机器上编写一个java程序,现在我想与mysql建立一个jdbc连接。My MySQL DB在虚拟机上作为docker容器运行

有人知道吗

Connection con=DriverManager.getConnection(“jdbc:mysql://10.0.2.15/“我应该在这里放什么”,“root”,“myrootpassword”)

我的容器ip地址是172.17.0.2,来宾ip是10.0.2.15。我的sql在端口3306上运行


提前感谢

您需要将数据库名称放在那里。
conn=DriverManager.getConnection(“jdbc:mysql://hostname:port/dbname“,”用户名“,”密码“;
退房


另外,在连接器中添加端口也不会有什么坏处。

您的docker容器应该能够将其mysql端口绑定到VM上的任何端口。您可以使用
docker run
-p VMPort:containerPort
选项进行绑定

所以这个命令

docker run -p 3306:3306 your-sql-container
将容器的3306端口发布到VM的3306端口

在这一点上,您应该能够使用

Connection con = DriverManager.getConnection("jdbc:mysql://10.0.2.15:3306/databaseName","root","myrootpassword");

我使用了你的虚拟机地址和虚拟机上的绑定端口。你应该用数据库的实际名称替换
databaseName

在docker容器中连接MySQL与连接未在docker容器中运行的MySQL的工作原理相同。