在使用corejava程序时,不使用密码连接Mysql(出现用户'root'@'localhost'访问被拒绝)

25 浏览
0 Comments

在使用corejava程序时,不使用密码连接Mysql(出现用户'root'@'localhost'访问被拒绝)

我想连接到mysql数据库,但在安装mysql时我没有设置密码,所以在我的程序中我也没有设置密码,但是连接时出现了错误。我正在使用属性文件来获取驱动程序、URL、用户名和密码,请帮助我。

这是我的代码:

try {
    Class.forName("com.mysql.jdbc.Driver");
    con=DriverManager.getConnection("jdbc:mysql://localhost:3306/easylibdb1","root","");
} catch (Exception e) {
    System.out.println("连接数据库时发生错误...!");
    e.printStackTrace();
}

这是我的属性文件内容:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://192.168.1.51:3306/easylibdb1

user=root

password=""

下面是堆栈跟踪:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:910)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3923)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1273)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
    at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:718)
    at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:46)
    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:525)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at java.sql.DriverManager.getConnection(DriverManager.java:579)
    at java.sql.DriverManager.getConnection(DriverManager.java:221)
    at com.easylib.AccessionFormat.mySqlConnection(AccessionFormat.java:111)
    at com.easylib.Index.main(Index.java:12)

0
0 Comments

Mysql Connection without password using corejava program (getting Access denied for user 'root'@'localhost')

出现问题的原因是root用户没有权限访问数据库。因此,需要在mysql中使用grant选项给予访问权限。在mysql命令行中执行以下命令:

GRANT ALL ON easylibdb1.* TO 'root'@'%';

希望能解决问题。

0
0 Comments

原因:出现这个问题的原因是连接MySQL数据库时密码为空,导致访问被拒绝。

解决方法:需要修改核心Java程序中的连接代码,将密码部分设置为正确的值。

具体修改方法如下:

password="" 替换为 password=

或者将con=DriverManager.getConnection("jdbc:mysql://localhost:3306/easylibdb1","root",""); 替换为 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/easylibdb1","root",null);

以上修改可以解决该问题。

0