我正在尝试编写一个java程序来连接到我的网站使用的同一个MySQL数据库。我使用相同的登录详细信息,减去主题名称,但我收到了这些错误:
SQLException: Access denied for user 'USER'@'HOSTNAME' (using password: YES)
SQLState: 28000
VendorError: 1045
我使用的是我的主机提供的主机名,密码和用户与我网站上的详细信息相同。
以下是代码snippit:
public main() {
Connection con = null;
String mysql_hostname = "HOST";
String mysql_username = "USER";
String mysql_password = "PASS";
String mysql_database = "DB";
int mysql_port = 3306;
initComponents();
try {
con = DriverManager.getConnection("jdbc:mysql://"+ mysql_hostname +":"+ mysql_port +"/"+ mysql_database +"?user="+ mysql_username +"&password="+ mysql_password);
}
catch(SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
}
这可能与某些cPanel设置有关,但我对Java很新,所以要求不会受到伤害......对吗? :d
答案 0 :(得分:2)
在cPanel上,我记得当你创建一个db用户时,还有一个与该用户默认关联的主机名(localhost),如果你在本地机器上运行代码,你必须添加你的IP(公共IP)或%in来自cPanel的此db用户的主机名。所以mysql将允许从你的机器连接。
注意:添加%有风险,请确保您拥有强密码。