1.问题
Springboot集成Durid远程连接数据库时,发现一直报ERROR 1045 (28000): Access denied for user,显示密码错误,但在本地通过Navicat和使用jdbc都可以远程连接数据库,而不显示密码错误或者没有权限。
2.办法
尝试了网上的在yml配置文件中对密码加单引号双引号,或者修改url,password字段,除去空格等都没有用,仍然出现ERROR 1045 (28000)Access denied for user异常。
怀疑是自己durid配置错误,导致无法连接,修改druid配置文件,发现果然是自己配置问题,但不清楚问题所在。
3.解决
解决办法,相关代码如图
1.application.yml

mst:
datasource:
username: root
password: root
url: jdbc:mysql://....?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
2.DruidConfig.java
从application.yml中获取参数
@Configuration
public class MyDruidConfig {
@Value("${mst.datasource.url}")
private String url;
@Value("${mst.datasource.username}")
private String username;
@Value("${mst.datasource.password}")
private String password;
@Value("${mst.datasource.driver-class-name}")
private String driverClassName;
@Bean("mstDataSource")
@Primary
public DataSource mstDataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDriverClassName(driverClassName);
return dataSource;
}
}
4.结论
druid可以使用默认配置,目前不太清楚为什么之前无法配置,并且显示ERROR 1045 (28000): Access denied for user,在网上也没有找到合适的解决办法,现在在这记录一下。
版权声明:本文为weixin_45910779原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。