为什么我得到了#34;访问被拒绝的本地主机'"错误?

时间:2014-04-12 22:04:49

标签: java mysql

我一直在尝试使用用户名“root”登录mysql,密码为“pass”,这是我尝试使用数据库运行java程序时得到的堆栈跟踪: / p>

Apr 12, 2014 4:51:41 PM carselectionui.CarSelectionUIWDB main
SEVERE: null
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:925)
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1704)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1250)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2465)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at carselectionui.CarSelectionUIWDB.main(CarSelectionUIWDB.java:597)

Exception in thread "main" java.lang.NullPointerException
    at carselectionui.CarSelectionUIWDB.main(CarSelectionUIWDB.java:604)

奇怪的是,几周前我在处理代码时实际上能够连接到数据库,但自从我重新启动计算机后,我再次收到访问被拒绝错误。我尝试不使用密码,认为重启时密码重置,但我仍然得到相同的错误。我在尝试连接数据库的任何时候都会收到此错误,因此我知道代码不是问题所在。

我正在使用Windows 7,这些是我的路径值:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;
C:\Go\bin;
C:\Program Files (x86)\MySQL\MySQL Utilities 1.3.6;C/wamp/bin/mysql/mysql5.6.12/bin/mysql.exe;
C/Program Files (x86) /MySQL/Connector J 5.1.29/mysql-connector-java-5.1.29-bin.jar;
C:/Users/pnflift8191/;
C:/Program Files (x86)/MySQL/Connector J 5.1.29/mysql-connector-java-5.1.29-bin.jar

刚才意识到我在那里有两次mysql-connector,但我知道这不是它无法正常工作的原因,因为在我不小心将它添加到那里之前它仍然没有用。

编辑:我也尝试通过命令行和MYSQL工作台连接,但仍然出错。

2 个答案:

答案 0 :(得分:0)

尝试以管理员身份运行程序[右键单击jar或其他任何内容并以管理员身份运行]。如果您使用eclipse作为IDE,则应该使用管理员权限运行eclipse [相同的过程]。

如果仍然无效,请确保用户名和密码正确无误。

答案 1 :(得分:0)

我最终解决这个问题的方法是: 1:停止MySQL服务 2:在命令行中键入:mysqld -skip - grant - tables 3:我能够启动MySQL。

这种方法的唯一问题是这适用于任何用户名和密码,但至少我可以使用MySQL。