在myEclipse10中运行java项目的时候,遇到java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)的报错信息。几番查找,终于解决问题,问题原因一个是配置文件db.properties语句错误,另外一个原因是mysql的授权的问题。
问题1:SSH项目数据库配置文件的正确写法:
jdbc.username=root
jdbc.password=123456
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/707?useUnicode\=true&characterEncoding\=UTF-8&zeroDateTimeBehavior\=convertToNull&allowMultiQueries\=true
jdbc.initPoolSize=5
jdbc.maxPoolSize=10
#...其中,数据库名称后面的语句是“?useUnicode\=true&characterEncoding\=UTF-8&zeroDateTimeBehavior\=convertToNull&allowMultiQueries\=true”以省略的
问题2:解决mysql授权问题
step1:进入mysql命令行
step2:给root用户开放远程访问的限制
mysql>use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root的密码"; //为root添加远程连接的能力
mysql> flush privileges;
mysql> exit
mysql>select host,user from user; //查看修改是否成功。
问题解决过程中遇到的其他问题:
-
在解决mysql授权的时候,遇到了 ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: YES)这个报错,在网上查找到需要修改mysql安装文件夹下的my.ini文件,但是发现安装程序文件夹里只有my-default.ini这个文件,一开始以为5.6版本就是要改这个文件,修改后无效。于是上网搜索mysql找不到my.ini文件的问题,发现这个文件在隐藏文件夹下,于是勾选显示隐藏的项目,在C盘会显示处ProgramData文件夹,找到my.ini文件。
-
打开后,搜索mysqld关键字找到后,在mysqld下面添加一行skip-grant-tables;
-
修改完成后,在服务中重启mysql服务;
-
进入mysql库(系统数据库)
-
修改数据库密码 update user set password=password("123456") where user="root";
-
刷新数据库flush privileges;
-
OK
总结:问题的解决是一个循序渐进的过程,通常是在解决一个一个小问题过程中,才能最终把问题解决,所以,需要有耐心!