无法连接运行在Docker容器上的MySQL服务器。
无法连接运行在Docker容器上的MySQL服务器。
我在Docker容器中运行SQL Server。
docker pull mysql/mysql-server:latest docker run --name=my_sql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql/mysql-server:latest docker exec -it my_sql mysql -u root -p #在容器中运行的MySQL中创建表。 CREATE DATABASE hello_java CHARACTER SET utf8 COLLATE utf8_general_ci;
所有这些都成功完成。
现在当我尝试使用Java连接到数据库时,出现错误。
String url = "jdbc:mysql://192.168.56.101:3306/hello_java"; DriverManager.getConnection(url, "root", "1234"); System.out.println("连接已建立....");
192.168.56.101是我的虚拟机的IP地址。我在虚拟机上运行Linux。
我得到了通信链接失败的错误。
我在Google上搜索并在以下链接中找到了一些解决方案,但都没有对我起作用。
我对/etc/my.cnf文件进行了更改,但似乎没有帮助。
谢谢。
文章内容如下:
在尝试连接运行在Docker容器上的MySQL服务器时,我遇到了连接失败的问题。经过一番研究和探索,我找到了以下解决方案。
首先,我修改了连接字符串,添加了以下参数:
String url = "jdbc:mysql://192.168.56.101:3306/mysql?allowPublicKeyRetrieval=true&useSSL=false";
通过在连接字符串中添加allowPublicKeyRetrieval=true&useSSL=false
参数,我成功地连接到了数据库。
在解决问题的过程中,我参考了以下链接的内容,它们对我产生了帮助:
- [Connection Java-MySql: Public Key Retrieval is not allowed](https://stackoverflow.com/questions/50379839)
- [How to Disable Establishing SSL Connection Without Server's Identity Verification is Not Recommended Warning When Connecting to MySQL Database in Java](https://www.tutorialspoint.com/how-to-disable-establishing-ssl-connection-without-server-s-identity-verification-is-not-recommended-warning-when-connecting-to-mysql-database-in-java)
感谢以上链接提供的解决方案。