java - 使用 docker-compose 在 mysql 中创建特定模式
问题描述
我必须为每个服务创建一个特定的模式。
- 首先,我将在文件
root
的帮助下以用户身份连接数据库docker-compose
码头工人-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项目
schema.sql
的路径下创建文件。root
架构.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主题
初始化一个新实例
推荐阅读
- laravel - 在 Laravel 中使用 Eloquent 对列表进行排序不能给出预期的结果
- java - 如何防止 JBoss EAP 6.4.X 解析属性值中的表达式?
- python - Python:根据特定列拆分数据集
- android - 我想在我的应用程序中集成谷歌日历,以便我所有的队友都可以添加活动,并且所有活动都应该在应用程序的成员中公开
- javascript - 排序并查找与当前时间最近的时间
- javascript - React & SCSS - 使用@Media Query 打印 2 个不同大小的 2 个不同页面
- python - 更改 Maya 的默认 UI(向按钮添加右键单击功能) - 使用 MEL 或 Python
- php - 来自mysql的JSON无法通过PHP正确显示
- android - 即使在联网后,Android 应用程序中的互联网连接问题
- python - 为什么更改新列表时原始列表会更改?