0

我想连接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("Got Error While Connecting To Database...!");
            e.printStackTrace();
        }

这是我的属性文件内容,

驱动程序=com.mysql.jdbc.驱动程序

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

用户=

密码= “”

和堆栈跟踪是休闲的..

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.<init>(ConnectionImpl.java:718)
    at com.mysql.jdbc.JDBC4Connection.<init>(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)
4

2 回答 2

0

我认为root用户没有访问数据库的权限。所以你需要grant在mysql中通过选项提供访问权限。在 mysql 命令行中执行以下命令。

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

我希望它会奏效。

于 2013-06-20T10:23:15.850 回答
0

这是一个副本:Mysql Connection with out password using corejava program

而且您仍在使用双引号作为密码。

你应该替换password=""password=

和/或

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

于 2013-06-20T08:38:43.350 回答