改错记录:MyBatis连接MySql数据库对数据表进行操作时报错 Error updating database.

【问题描述】

使用MyBatis对MySQL数据库中的数据表进行操作时出现“Error updating database.”报错。主要内容为:Error updating database.  Cause: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

【问题详情】

### Error updating database.  Cause: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
### The error may exist in com/mapper/UserMapper.xml
### The error may involve com.mapper.UserMapper.addUser
### The error occurred while executing an update
### Cause: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:199)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
	at com.service.impl.UserServiceImpl.addUser(UserServiceImpl.java:64)
	at test.Test.main(Test.java:11)
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
	at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:447)
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
	at java.sql.DriverManager.getConnection(DriverManager.java:664)
	at java.sql.DriverManager.getConnection(DriverManager.java:208)
	at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:221)
	at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:216)
	at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.getConnection(UnpooledDataSource.java:95)
	at org.apache.ibatis.datasource.pooled.PooledDataSource.popConnection(PooledDataSource.java:422)
	at org.apache.ibatis.datasource.pooled.PooledDataSource.getConnection(PooledDataSource.java:89)
	at org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java:138)
	at org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:60)
	at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:336)
	at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:85)
	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)
	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
	... 3 more

【初步检查】

根据报错内容检查相应的UserMapper.xml文件的代码后,确定代码逻辑、语法无误。

【问题分析】

报错内容“Access denied for user 'root'@'localhost' (using password: YES)”表达的直接意思是:名为“root”的用户在“localhost”端口使用密码对数据库的访问被拒绝了。

初步猜想有两种情况导致:1.数据库服务未启动。    2.连接数据库的用户名或密码错误。

【解决方案】

1.使用管理员权限,通过命令提示符打开mysql数据库的服务。

2.使用管理员权限,通过命令提示符重置密码。

【执行解决方案1】

使用管理员权限运行命令提示符,在弹出的窗口输入:“net start mysql;”回车。启动数据库服务后,发现问题依然存在。

【执行解决方案2】

接下来重置数据库8.0.16的root密码。

点击查看重置root密码操作

 

【解决完成】

重置root密码后,按照新重置的密码编辑代码,连接数据库成功。

【总结】

本次问题的症结是:遗忘了数据库root密码,编辑代码时使用了错误的密码访问数据库,导致访问被拒绝。

你可能感兴趣的:(报错处理)