所以我在Debian服务器上设置了MySQL数据库,它可以从phpMyAdmin客户端正常工作。我目前正在开发一个项目来编写一个Java服务器,该服务器能够通过JDBC连接使用已在此服务器上的MySQL数据库。我看了很多教程和文档,但所有这些似乎只是解释了如何做客户端代码,但我还没有弄清楚如何成功打开到服务器的JDBC连接。就我而言,我相信该程序已正确设置驱动程序,因为它不会崩溃(我只是将程序的Java Build Path指向MySQL提供的Connector / J)。就我的程序而言,这就是它的样子......
import java.sql.*;
public class JDBCTest {
public static void main(String[] args) {
System.out.println("Started!");
try {
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
System.out.println("Driver registered. Connecting...");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/", "root", "password");
System.out.println("Connected!");
conn.close();
} catch (SQLException e) {
System.out.println("Error!");
e.printStackTrace();
}
}
}
这就是印刷品......
Started!
Driver registered. Connecting...
就像DriverManager.getConnection(String)就在那里冻结一样。我确定这是服务器的问题,因为当我故意拼错localhost或IP地址时,程序会在20秒内崩溃。这只是永远挂在那里。
对此文本墙感到抱歉,但我的最后一个问题是,是否有人有任何信息我应该做什么或安装在服务器上以使其工作?非常感谢你!
答案 0 :(得分:2)
请尝试以下操作:
public class MySqlDemo {
public static void main(String [] args) {
java.sql.Connection conn = null;
System.out.println("SQL Test");
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = java.sql.DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?user=root&password=");
}
catch (Exception e) {
System.out.println(e);
System.exit(0);
}
System.out.println("Connection established");
}
答案 1 :(得分:1)
您必须提供要连接的架构的名称。通常,还会添加端口。
这是一个示例连接字符串:
jdbc:mysql://repos.insttech.washington.edu:3306/johndoe?user=johndoe&password=jddb
3306是端口,johndoe的第一个实例是Schema的名称。 johndoe的第二个实例是用户名。
答案 2 :(得分:0)
答案 3 :(得分:0)
可能是Connector / J库试图使用命名管道连接到MySQL服务器而不是使用TCP / IP,并且由于某种原因,命名管道不可用。尝试指定端口号。
您可能还想尝试按照here所述开启Connector / J配置中的某些日志记录。