Docker Compose启动MariaDB时初始化SQL脚本不执行问题求助
MariaDB容器初始化脚本无法自动执行问题
环境与背景
我按照MariaDB官方文档操作,文档说明若容器内/docker-entrypoint-initdb.d目录下存在.sql文件,数据库会自动完成初始化。当前环境是Oracle VirtualBox虚拟机中的Ubuntu Server,使用docker-compose部署MariaDB容器。
docker-compose.yml配置
version: "3.9" services: db: image: mariadb:10 container_name: mariadb ports: - 3306:3306 environment: - MYSQL_USER=user - MYSQL_ROOT_PASSWORD=password - MYSQL_PASSWORD=password - MARIADB_DATABASE=database # 尝试过使用MYSQL_DATABASE及删除该行 volumes: - "db_data:/var/lib/mysql" - ".database/initdb/dump.sql:/docker-entrypoint-initdb.d/initdb.sql" # networks: # - network volumes: db_data:
尝试过的初始化脚本
最简测试脚本
CREATE DATABASE NEWDB;
后续修改的脚本
CREATE USER user WITH PASSWORD 'password'; CREATE DATABASE IF NOT EXISTS database; GRANT ALL PRIVILEGES ON DATABASE database TO user;
已执行的排查步骤
- 重启Docker服务
- 删除所有容器、镜像及卷后重新部署
- 确认容器内
/docker-entrypoint-initdb.d/initdb.sql文件存在 - 测试
MARIADB_DATABASE环境变量可正常创建指定数据库,但初始化脚本仍未执行
后续需求
后续将部署PHP容器,通过PHP脚本收集数据存储至该MariaDB容器,同时MariaDB需对接网站提供数据支持。
内容的提问来源于stack exchange,提问作者pheromone42
相关产品推荐
相关产品推荐

