在使用SpringBoot的时候在yml文件中配置数据库的连接信息的时候报java.sql.SQLException: Access denied for user 'root'@'localhost

解决SpringBoot数据库连接异常
本文探讨了在SpringBoot项目中遇到的java.sql.SQLException:Accessdeniedforuser‘root’@‘localhost’(usingpassword:YES)错误。文章从检查用户权限、配置文件编码、编译状态及密码格式等方面提供了详细的解决方案。

在使用SpringBoot的时候在yml文件中配置数据库的连接信息的时候,用户名,密码都确认没有问题的时候确报java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)
从以下几点查找:
1.查看用户是否有权限。
2.查看配置文件的编码方式是否正确
3.查看编译后的class文件中有没有更新到最新的状态
4.注意password密码使用""进行引起来,这个原理我没想起来是因为什么

当tomcat连接mysql出现`java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)`错误时,可参考以下解决办法: - **检查配置文件信息**:查看连接数据库配置文件,如`db.properties`、`application.yml`或`applicationContext.xml`等,确保其中的数据库连接信息(用户名、密码、URL、驱动类名)准确无误。例如,在`db.properties`文件中,要保证`jdbc.username`和`jdbc.password`与数据库的实际用户名和密码一致。示例`db.properties`文件内容如下: ```properties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT jdbc.username=root jdbc.password=123456 ``` 若使用`application.yml`,要保证`spring.datasource`下的`username`和`password`正确,示例: ```yaml server: port: 8080 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username: root password: 正确的密码 thymeleaf: cache: false mybatis: mapper-locations: classpath:mapper/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` 若使用`applicationContext.xml`,要保证`<bean id="dataSource">`中的`username`和`password`正确,示例: ```xml <!-- 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/safemanage?useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="正确的密码"/> </bean> ``` - **修改身份验证插件**:找到`my.ini`文件,找到`mysqld`部分(若没有则直接添加),将`auth_native_password`设置为合适的值,使新版本的客户端仍然能够连接到MySQL服务器,因为新版本的客户端支持多种身份验证插件,包括`mysql_native_password` [^4]。 - **授权远程访问**:在MySQL命令行中执行以下命令,授权使MySQL被允许远程访问,同时刷新权限: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH PRIVILEGES; ```
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值