繁体   English   中英

使用 docker-compose 在 mysql 中创建特定模式

[英]create specific schema in mysql with docker-compose

我必须为每个服务创建一个特定的模式。

  1. 首先,我将在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:
  1. 其次,我将在 spring 启动项目的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM