Docker compose Mysql

#mysql #docker #docker-compose

#mysql #docker #docker-составить

Вопрос:

я попытался внести 2 изменения в свой docker-compose, но я не нашел, как это сделать. 1- Я хочу создать 2 пользователя. 2- Я хочу импортировать файл sql из docker-compose.

 version: '3.8'

services:
    mysql:
        image: mysql:8.0.21
        command: --default-authentication-plugin=mysql_native_password
        restart: always
        container_name: mysql
        environment:
            - MYSQL_ROOT_PASSWORD=root
            - MYSQL_USER="user, user2"
            - MYSQL_PASSWORD="pass, pass2"
            - MYSQL_DATABASE=templateProject
            - MYSQL_MAX_ALLOWED_PACKET=1024M
            - MYSQL_INNODB_BUFFER_POOL_SIZE=1G
            - MYSQL_INNODB_LOG_FILE_SIZE=256M
            - MYSQL_INNODB_LOG_BUFFER_SIZE=256M
        ports:
            - '3361:3360'
        volumes:
            - ./dump.sql:/my_dump.sql
    phpmyadmin:
        image: phpmyadmin
        restart: always
        container_name: phpmyadmin
        ports:
          - 8080:80
        environment:
          - PMA_ARBITRARY=1
  

Ответ №1:

Для # 2 вы должны связать смонтировать каталог, содержащий ваш файл sql, следующим образом:

 "./folderwithsql:/docker-entrypoint-initdb.d"
  

Для # 1 вы можете включить другой файл sql в свой монтируемый файл «folderwithsql», который включает инструкции SQL для создания дополнительного пользователя. Файл будет содержать что-то похожее на эти:

 CREATE USER 'extrauser'@'%' IDENTIFIED BY 'passwordforextrauser';
GRANT INSERT, UPDATE, SELECT, DELETE ON mynewdb.* TO 'extrauser'@'%';
  

Комментарии:

1. Привет, Карлос, спасибо за твой ответ. Я сделал то, что вы сказали, но не сработало 🙁

2. Он не запускал ни один из ваших sql-скриптов или просто не создавал дополнительного пользователя?

3. Любой скрипт … я помещаю это в dump.sql — — — — Использовать базу данных. ИСПОЛЬЗУЙТЕ templateProject ; СОЗДАЙТЕ ТАБЛИЦУ tblAction ( id bigint(20) NOT NULL, name varchar(250) NOT NULL, FK_activeID bigint(20) NOT NULL, createdAt datetime NOT NULL, updatedAt datetime NOT NULL ) ENGINE= КОДИРОВКА InnoDB ПО УМОЛЧАНИЮ = utf8;

4. тома: — «/Users/gustavo/Desktop/mysqldump:/docker-entrypoint-initdb.d»