当我连接到 MYSQL 数据库(托管在托管域的 phpmyadmin 上,而不是本地主机)时,我收到一条错误消息,指出我完全被拒绝访问服务器。到底是怎么回事?我不太熟悉如何使用这个库方法并且很困惑。
Connection connection;
try
{
connection =
DriverManager.getConnection("jdbc:mysql://WEBSITENAME.com/DATABASENAME0",
"DATABASEUSERNAME", "DATABASEPASSWORD");
Statement sql = connection.createStatement();
ResultSet myRs = sql.executeQuery("SELECT * FROM table");
while(myRs.next())
{
System.out.println(myRs.getString("column"));
}
} catch (SQLException e)
{
e.printStackTrace();
}
提供的错误如下:
java.sql.SQLException: Access denied for user 'user'@'IP ADDRESS IS LISTED HERE' (using password: YES) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835) at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:455) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at jDgmj8pWUnXVoHZk04z9.sqlConnect.updateCommand(sqlConnect.java:12) at jDgmj8pWUnXVoHZk04z9.Driver.main(Driver.java:10)
最佳答案
对此我有两个想法:
通常情况下,MySQL 会拒绝来自其他主机的连接。您必须在配置文件中进行配置(请参阅 here )。如果您无法访问配置文件,则必须询问管理员。
此外,您应该检查端口 3306(MySQL 用于 TCP 连接的默认端口)是否已打开。如果防火墙阻止该端口,您将无法连接。在 Windows 中,您可以使用 telnet 检查它(如果启用):
。
telnet WEBSITENAME.com 3306
没有错误消息(空白cmd)表示连接已建立。
关于Java SQL 连接无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56277011/