JDBC访问被拒绝错误

时间:2014-05-29 09:05:38

标签: java mysql jdbc

我正在尝试将我的应用程序部署到另一台服务器,虽然JDBC连接在我的机器上工作,但我无法使用这个mysql服务器。

有关mysql服务器的一些信息:

    select user(); 
    +----------------+
    | user()         |
    +----------------+
    | root@localhost |
    +----------------+

    mysql> show variables where Variable_name="port";
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | port          | 3306  |
    +---------------+-------+

使用用户localhost登录mysql没有密码( mysql -u root 就足以登录)

我使用以下语句连接数据库

    DriverManager.getConnection(
        "jdbc:mysql://localhost:3306/database_name", "root", ""));

但是,它会引发以下错误

     java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)

有什么建议吗?感谢。

3 个答案:

答案 0 :(得分:1)

你需要在%MYSQL_INSTALL_PATH%/ bin 文件夹中,使用cmd并运行:

mysqld -nt --skip-grant-tables
mysqladmin -u root flush-privileges password "NEW_PASSWORD"

重新启动 mysql服务。

答案 1 :(得分:1)

尝试为root用户设置密码。让root用户没有凭据是非常糟糕和不安全的。这link会有所帮助

答案 2 :(得分:1)

您是否尝试过mysql -u root -p,未提供密码字段? 我想这就是问题所在 "jdbc:mysql://localhost:3306/database_name", "root", ""));您使用""作为密码,因此我认为您需要执行此操作mysql -u root -p