Locall MySQL DB登录错误:用户'root'@'localhost'拒绝访问(使用密码:YES)

时间:2014-08-21 01:52:02

标签: mysql login

我有史以来最奇怪的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)

...

2 个答案:

答案 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%运行