问题描述
连接MySql数据库,出现java.sql.SQLException:Accessdeniedforuser'root'@'localhost'(usingpassword:YES)的问题,用户名是root,密码是123456,这是我自己设置的密码,为什么连接失败呢???我在MySql中的可视化软件中,测试连接,连接成功,可是为什么在Javaweb中连接数据库不成功呢????比较急!!求解!!
解决方案
本帖最后由 PsMuJIngHua 于 2013-02-02 07:51:44 编辑
解决方案二:
重启一下mysql试一下
解决方案三:
也有可能是root的权限不够
解决方案四:
好像没什么用,当我测试Connectionconn=null;try{Class.forName("com.mysql.jdbc.Driver");}catch(Exceptionex){System.out.println("无法加在驱动");}try{conn=(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/onlineexam","root","123456");System.out.println("数据库连接成功");if(!conn.isClosed())System.out.println("success");测试是数据库连接成功;但是在配置文件中,<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"><propertyname="driverClassName"value="com.mysql.jdbc.Driver"></property><propertyname="url"value="jdbc:mysql://localhost:3306/onlineexam"></property><propertyname="username"value="root"></property><propertyname="password"value="123456"></property></bean>在项目启动时,仍会出现Causedby:java.sql.SQLException:Accessdeniedforuser'root'@'localhost'(usingpassword:YES)问题,纠结了两天了
解决方案五:
连接数据库一个是密码是否正确,driver是否对,有么有jar包冲突,
解决方案六:
请问楼主有没有解决这个问题?怎么解决的?我也遇到同样的问题了,纠结好几天了。
解决方案七:
解决了吗,怎么解决的?
解决方案八:
没开启服务吧netstartmysql这个开启了没。。在看看你给的权限是不是你说的那个权限
解决方案九:
我晕我也遇到了我的根连不上,都下的是同样的代码吧publicclassDataProcess{DataProcess(){}/****@return*/publicstaticConnectiongetConnection(){StringCLASSFORNAME="org.gjt.mm.mysql.Driver";StringSERVANDDB="jdbc:mysql://localhost:3306/Lab?user=admin&password=admin&useUnicode=true&characterEncoding=utf-8";Connectioncon;try{Class.forName(CLASSFORNAME);con=DriverManager.getConnection(SERVANDDB,"admin","admin");System.out.println("mysQl连接OK!");returncon;}catch(Exceptione){e.printStackTrace();System.out.println("mysQl连接失败!");returnnull;}}
解决方案十:
把其他的用户都删除。只留下你配置文件里面那个(root@localhost)或者(root@127.0.0.1)从新设置一次密码。还有一种可能,你两个地方配置了数据库连接。
解决方案十一:
找mysql的user表,把localhost换成%保存。重启mysql服务试试,
解决方案十二:
你连的是自带的test库?自己新建一个用自己的库连一下试试
解决方案十三:
问题解决了吗,我也遇到同样问题了~~~
解决方案十四:
按我图片上,把这个勾上,然后重启一下mysql试一下
解决方案十五:
原因是加配置文件中没加上useUnicode=true亲自尝试
解决方案:
同样问题,求解答
解决方案:
我也碰到了这个问题,暂时无解
解决方案:
在mysql库中添加127.0.0.1
解决方案:
引用17楼suns3739的回复:
在mysql库中添加127.0.0.1
mysql库user表查看HOST中是否有127.0.0.1的一条记录,没有就添加一条,仿照localhost
解决方案:
你的密码可能有问题!看看你的密码是否成功,空密码试试
解决方案:
我也碰到了这个问题,我这边的原因是密码的值弄错了,本来的密码值是定义的一个全局看量password,但是我调用的方法里面也传来一个String类型的值命名为password,这样导致报这个错。
解决方案:
遇到相同问题本人采用这种方式Stringurl="jdbc:mysql://localhost:3306/mysql?"+"user=root&password=root&useUnicode=true&characterEncoding=UTF8";conn=DriverManager.getConnection(url);能连接上
解决方案:
各种方法试了不行啊
解决方案:
log4j:WARNNoappenderscouldbefoundforlogger(org.hibernate.cfg.Environment).log4j:WARNPleaseinitializethelog4jsystemproperly.org.hibernate.exception.GenericJDBCException:Cannotopenconnectionatorg.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)atorg.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)atorg.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)atorg.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)atorg.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)atorg.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)atorg.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)atorg.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)atorg.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1327)atcom.cjg.hibernate.add.main(add.java:13)Causedby:java.sql.SQLException:Accessdeniedforuser'root'@'localhost'(usingpassword:YES)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:798)atcom.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3700)atcom.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1203)atcom.mysql.jdbc.Connection.createNewIO(Connection.java:2568)atcom.mysql.jdbc.Connection.<init>(Connection.java:1485)atcom.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)atjava.sql.DriverManager.getConnection(DriverManager.java:582)atjava.sql.DriverManager.getConnection(DriverManager.java:154)atorg.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)atorg.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)...5more测试连接数据库成功的执行代码时出现这样的错误怎么解决
解决方案:
注意你要连接的数据库和访问数据库的用户具有的用户名和密码的区别比如如下的代码<propertyname="jdbcUrl"value="jdbc:mysql://localhost:3306/database"/><!--指定连接数据库的用户名--><propertyname="user"value="root"/><!--指定连接数据库的密码--><propertyname="password"value="root"/>需要访问的是“database”数据库,但是用户名和密码是安装mysql时创建的用户和密码即都为root
解决方案:
当报这个错误时:java.sql.SQLException:Accessdeniedforuser'root'@'wangzhili-PC'(usingpassword'YES')解决方法:网上的无非是重新启动数据库,或者直接付权限。这些方法都不一定能起效,百度没出结果只有自己按逻辑尝试,我解决的办法是(1)打开sqlyou(当然我用的事sqlyou)你也可以cmd-->mysql,不过有图形化界面简单,首先进入sqlyou--》打开用户管理--》添加一个用户,用户名(root)当然和你登陆的mysql服务器用户名一样,密码和服务器密码一样,主机‘%’--》保存改动,这是第一步完成你可以重新启动项目,发现会报一个新错。如下Accessdeniedforuser'root'@'%'todatabase'platformkf'这是我们几乎已经成功。我们只需要一条语句就可GRANTALLPRIVILEGESON数据库名.*TOroot@'%'IDENTIFIEDBY'密码'WITHGRANTOPTION;
解决方案:
用这句话搞定了!!!!GRANTALLPRIVILEGESON数据库名.*TOroot@'%'IDENTIFIEDBY'密码'WITHGRANTOPTION;
解决方案:
我居然是把端口号从3306改到3308就好了。。。看来还是配置不对。。。
解决方案:
我也遇到了原因竟然是多了个空格
解决方案:
我纠结了半天,结果发现密码写错了,按照配置没问题,下面是我的配置db.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8db.username=rootdb.password=mysqlrootdb.dirverClass=com.mysql.jdbc.DriverdbName=test
解决方案:
已经解决!我也是这问题,原因是在部署的时候部署了两个项目引起的!把不需要的项目从服务器remove掉!
解决方案:
修改一下密码就好,mysql可以强制破解密码的
解决方案:
root用户名看下是不是有空格
解决方案:
权限问题,重置密码就好了~~