我在这里也发现了同样的问题,但是问也没有帮助,对我也没有帮助。所以三年后我又试了一次:)
我用MySQL数据库做了一个Sping Boot 应用程序。所有的CRUD操作都运行良好,它已经被Postman测试过了。当我添加www.example.com时Persistance.autoconfiguration.java,它会生成SQLException:拒绝用户'XXX'@'localhost'****的访问(使用密码:否).用户XXX是我得Windows用户配置文件.
Persistence.configuration.java位于config包中,它位于conferencedemo 2中,其中包含控制器、存储库等包。
package com.cg.conferencedemo2.config;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
public class PersistenceConfiguration {
@Bean
public DataSource dataSource(){
DataSourceBuilder builder = DataSourceBuilder.create();
builder.url("jdbc:mysql://localhost:3306/conference_demo?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC");
System.out.println("My custom datasource hean has benn initialized and set");
return builder.build();
}
}
我试过做这个sql,但是没有效果。
CREATE USER 'XXX'@'localhost' IDENTIFIED BY 'password' ----> 0 row(s) affected
GRANT ALL PRIVILEGES ON conference_demo.* TO 'XXX'@'localhost' ----->0 row(s) affected
应用程序.属性
spring.datasource.url=jdbc:mysql://localhost:3306/conference_demo?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
谢谢你的建议
2条答案
按热度按时间n53p2ov01#
如果您配置了
spring.datasource.*
属性,Spring将自动为您注入一个DataSource
,您不需要使用构建器的@Bean
producer方法。4uqofj5v2#
在我的例子中,我只是删除了spring.datasource.url中的端口:3306。
下面是参考的链接:数据源配置