springboot를 사용하여 데이터베이스에 연결할 때 일부는 yml을 사용하여 DataSource 정보를 설정할 수 있으며 다음 예외가 발생할 수 있습니다.
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
로그에는 비밀번호가 잘못되었다고 표시되지만 여러 번 시도한 결과 사용자 이름과 비밀번호가 올바른 것으로 확인되어 당황합니다.
사실 이는 yml 파일의 규칙입니다. 문자열을 사용할 때는 큰따옴표를 추가해야 합니다 . 여기서 우리의 비밀번호는 실제로 문자열이지만 application.yml 파일에서는 비밀번호에 큰따옴표를 추가하지 않습니다. .
# spring的配置
spring:
application:
name: springcloud-provider-dept
#数据源的配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/springclouddb01?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: 123456
여기서는 비밀번호를 큰따옴표로 묶어야 합니다.
# spring的配置
spring:
application:
name: springcloud-provider-dept
#数据源的配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/springclouddb01?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: "123456"
그 후에는 정상으로 돌아갈 수 있습니다.
확장하다:
물론, 많은 개발자들은 application.yml 형식의 파일 외에도 application.properties 형식의 파일도 사용하겠지만, 이런 종류의 파일은 문자열을 큰따옴표로 묶어야 한다고 규정하지 않습니다. 직접 작성한 경우 오류를 신고하세요. .
#服务器的端口号
server.port=80
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://119.23.248.141:3306/wolf?characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456