我是一名 java 初学者,正在开发一个使用 JDBC 连接到远程 mysql 数据库的简单应用程序。我已经在本地测试了它,它工作得很好,但是我无法让它在我的远程服务器上工作。 我认为它没有多大用处,但代码如下:
Connection connection = null;
String dburl = "jdbc:mysql://314159265:3306/Db_Name";
String userName = "user";
String passWord = "password";
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(dburl, userName, passWord);
Statement st = connection.createStatement();
String query = "INSERT INTO Example (`TestColumn`) VALUES('hello')";
int rsI = st.executeUpdate(query);
System.out.println("Hi");
}catch (Exception e) {
System.out.println(e);
} finally {
if (connection != null) {
try {
connection.close();
System.out.println("Database connection terminated");
} catch (Exception e) { /* ignore close errors */ }
}
}
当我运行此程序时,我收到以下消息:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago.The driver has not received any packets from the server.
我很确定这一定是某种服务器配置问题。
Notes:
Username, password, IP, database name, etc. are just examples.
最佳答案
这可能是防火墙问题或配置问题。但我认为这根本不是编码问题 - 您需要开始对连接进行故障排除。
尝试使用第三方客户端应用程序连接 mysql 进行故障排除。这将指示它是否配置为外部访问。虽然它不能确保 JDBC 从外部可见,但它确实排除了一些潜在的防火墙问题。
按照本指南帮助您搞乱配置
如果您仍然遇到困难,可能是编码问题,因此请查看此页面:
How to connent to a remote mysql database with java?
附注我假设您使用 unix 作为操作系统。
关于java - 使用JDBC连接mysql远程数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13148852/