【发布时间】:2021-08-13 17:00:24
【问题描述】:
我必须为每个服务创建一个特定的架构。
- 首先,我将以
root用户身份在docker-compose文件的帮助下连接数据库
docker-compose.yml
version: "3"
services:
patient-service:
image: patient-service:1.0
container_name: patient-service
ports:
- 9090:9090
restart: on-failure
networks:
- patient-mysql
depends_on:
- mysql-db
links:
- mysql-db
mysql-db:
image: mysql:8
container_name: mysql-db
ports:
- 3306:3306
networks:
- patient-mysql
environment:
- MYSQL_ROOT_PASSWORD=14292
- MYSQL_USER=root
networks:
patient-mysql:
- 其次,我会在spring boot项目的
root路径下创建schema.sql文件。
schema.sql
create user 'patient_db'@'%' identified by '67546';
grant all privileges on *.* to 'patient_db'@'%';
flush privileges;
create database patient_db;
use patient_db;
create table if not exists holiday(holiday_date varchar(100),holiday_name varchar(100),created_by varchar(100),
modified_by varchar(100),created_date_time timestamp,modified_date_time timestamp,constraint pk_date_holiday primary key(holiday_date));
3.最后,在properties-mysql.yml文件的帮助下,从项目中连接到数据库上的特定架构。
spring:
datasource:
url: 'jdbc:mysql://mysql-db/patient_db?createDatabaseIfNotExists=true&autoReconnect=true&llowPublicKeyRetrieval=true&useSSL=false&allowPublicKeyRetrieval=true'
username: patient_db
password: 67546
driver-class-name: com.mysql.cj.jdbc.Driver
initialization-mode: always
tomcat:
test-while-idle: true
validation-query: SELECT 1
jpa:
database-platform: org.hibernate.dialect.MySQL8Dialect
show-sql: true
hibernate:
ddl-auto: validate
则抛出以下异常
access denied for user 'patient_db'@'%' (using password yes)
我的撰写文件有什么问题?我们不能在与应用程序一起加载的schema.sql 文件中创建不同的用户吗?
github - github repo of app
【问题讨论】:
标签: java mysql spring-boot docker docker-compose