无法连接到服务器意味着代码不输出任何内容。我认为,问题在于获取连接(即使我更改登录或传递)。顺便说一下,jdbc驱动程序被加载(我没有单独安装,它默认安装了MySQL)。 '用户'表位于新创建的数据库中。请给一个知道该怎么做:无法连接到MySQL
import java.sql.*;
import java.sql.Connection;
import java.sql.Statement;
public class DBConn {
public static void main(String[] args) {
Connection conn = null;
Statement statement = null;
ResultSet resultSet = null;
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/users";
conn = DriverManager.getConnection(url, "root", "1111");
statement = conn.createStatement();
resultSet = statement.executeQuery("SELECT * FROM users");
while(resultSet.next()){
System.out.println(resultSet.getInt("user_id") + ":" + resultSet.getString("usersName"));
}
} catch (ClassNotFoundException e){
e.printStackTrace();
} catch (SQLException e){
e.printStackTrace();
} finally {
try {
if (resultSet != null) resultSet.close();
if (statement != null) statement.close();
if (conn != null) conn.close();
} catch (SQLException e){
e.printStackTrace();
}
}
}
}
你得到堆栈跟踪有什么异常? – Kick
'localhost:3306'指的是TCP套接字,但是mysql倾向于将TCP“localhost”重写为unix域套接字连接,而不是为了提高效率。如果您的驱动程序/客户端设置不正确并在错误的地方查找套接字,则无法连接。这或它真的是试图通过tcp连接,并且您的服务器已配置为跳过网络和/或未绑定到localhost:3306。 –
您正试图连接到名为'users'的数据库并查询名为'users'的表。这是故意的吗?如果是这样,您可能需要将SQL查询更改为'resultSet = statement.executeQuery(“SELECT * FROM users.users”);'。否则,它可能是MySql中的用户权限问题。无论如何,下次向我们展示您遇到的任何错误都会帮助您更快地获得答案,并帮助我们更好地了解您的问题。 –