我有史以来最奇怪的MySQL登录问题!
DBMS安装在我的桌面上,我在本地访问它,而不是通过网络或互联网访问。
当我尝试通过cmd连接到它时:
mysql -u root -proot;
它完美连接..
但是,当我尝试通过NetBeans中的Java程序进行连接时:
Connection con = null;
String url ="jdbc:mysql://localhost:3306/testdb";
String user ="root";
String password ="root";
try
{
con = DriverManager.getConnection(url,user,password);
}
Catch(Exception e)
{
System.out.println(e.toString() );
}
它引发异常!!
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
我在NetBeans中添加了mysql-connector-java-5.1.24-bin.jar库.. 它以前工作,不知道为什么它现在不工作!!
此外,当我像这样连接MySQL时:
mysql -u root -p;
然后我输入密码,它会出现此错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
...
答案 0 :(得分:1)
Connection con = null;
String dbase = "database";
String dbuser = "root";
String dbpass = "";
try{
String ConnString;
Class.forName("com.mysql.jdbc.Driver").newInstance();
ConnString = "jdbc:mysql://localhost:3306/"+dbase+"?user="+dbuser+"&password="+dbpass;
con = DriverManager.getConnection(ConnString);
//System.out.println("Connection to database successful!");
}catch(Exception e){
e.printStackTrace();
}
试试这个?
答案 1 :(得分:0)
这么傻~~~ 我发现了问题...... 这就是为什么会发生这种情况以及我是如何解决的:
问题原因:我将root的密码从空白更改为' root'
然后,我无法从Java连接到MySQL ..
事实证明,我必须在更改密码后更新数据库的权限。
所以我通过以下方式做到了:
GRANT ALL PRIVILEGES ON [database_name].* to '[user]'@'[hostname]' identified by '[password]'
现在它可以100%运行