[英]create specific schema in mysql with docker-compose
我必须为每个服务创建一个特定的模式。
docker-compose
文件的帮助下以root
用户身份连接数据库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:
root
路径下创建schema.sql
文件。架构.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 应用程序回购
我可以建议你更简单的方法。 创建新文件夹(例如 init_scripts)并将 schema.sql 移动到此文件夹。 并将此文件夹安装到 mysql docker 映像到文件夹 /docker-entrypoint-initdb.d
volumes:
- "./init_scripts:/docker-entrypoint-initdb.d"
有关更多信息,请阅读https://hub.docker.com/_/mysql主题
初始化一个新实例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.