从SQL数据库安装mysql-connector-java-8.0.16.jar后,尽管尽我最大的努力来使我的代码正常工作,但我仍然遇到一个拒绝用户访问的错误。这是特殊的,因为在我的网站上可以使用相同的用户凭据,因此该用户具有访问数据库的正确权限。怎么了我使用了错误的导入吗?
有问题的进口
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
相关代码为:
package real;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class myConnection
{
public int returnOperation()
{
try
{
String host = "jdbc:mysql://website.com/database";
String username = "user";
String password = "password";
Connection con = DriverManager.getConnection(host, username, password);
}
catch(SQLException e)
{
System.out.println("There is an error with the SQL database: " + e.getMessage());
}
return 0;
}
}
我一直收到的错误是:
There is an error with the SQL database: Access denied for user 'USER'@'IP ADDRESS' (using password: YES)
答案 0 :(得分:1)
好消息看起来您网络中的一切都还可以。您的错误是专门的配置。
关于配置,我的第一个假设是您仅允许本地连接(来自本地主机)。
您的问题仅仅是身份验证。尝试在本地与该用户连接,如果成功,那么您确实需要告诉mysql允许从一个IP或任何IP到服务器与该用户连接。
GRANT ALL PRIVILEGES ON database.* TO 'user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
或者您可以在服务器内部尝试该应用程序,看看是否成功。
答案 1 :(得分:1)
如上所述。
GRANT ALL PRIVILEGES ON database.* TO 'user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
并且由于您是初学者,因此可以转到phpmyadmin中的 sql标签