Docker MySQL官方镜像启动默认初始化创建数据库

编程教程 > Docker Case (686) 2025-03-29 17:52:06

Docker MySQL官方镜像启动默认初始化创建数据库,docker MySQL初始化sql脚本执行,初始化用户sql脚本

操作示例图-da9648d81b574e67b2a9ec510be154a4.png

version: "3.8"

networks: 
  vRouter: 
    external: true #外部网络

services:
  mysql:
    image: mysql:5.7.35
    container_name: mysql
    hostname: mysql
    restart: always
    ports: 
     - 3306:3306
    networks:
      vRouter:
        aliases:
         - mysql.server
    command: [  
      '--character-set-server=utf8mb4',
      '--collation-server=utf8mb4_unicode_ci'
    ]
    environment:
     - MYSQL_ROOT_PASSWORD=root
     - LANG=C.UTF-8 #解决导入中文乱码问题
    volumes:
      - ./data:/var/lib/mysql
      - ./conf.d:/etc/mysql/conf.d
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime

    deploy: 
      resources: 
        limits: 
          memory: 1048M

关键配置 

- ./init.sql:/docker-entrypoint-initdb.d/init.sql

说明:

在MySQL官方镜像中,/docker-entrypoint-initdb.d/目录下的sql脚本会在容器初次运行时候执行

根据上面的规则,只需要在init.sql文件中编写一个创建数据库的sql命令即可

create database typecho DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

官方原话

When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions .sh, .sql and .sql.gz that are found in /docker-entrypoint-initdb.d. Files will be executed in alphabetical order. You can easily populate your mysql services by mounting a SQL dump into that directory and provide custom images with contributed data. SQL files will be imported by default to the database specified by the MYSQL_DATABASE variable.

意思就是挂载到/docker-entrypoint-initdb.d/目录下面的文件(格式为.sh .sql sql.gz)都会执行

 

关联文章:

 

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
Docker MySQL官方镜像启动默认初始化创建数据库,docker MySQL初始化sql脚本执行,初始化用户sql脚本version: "3.8"netw
Docker MySQL数据库备份脚本参考 title(backup.sh)#!/bin/sh# useage# /path/to/backup.sh dbNa
MySQL 8创建数据库用户和之前的版本不一样,之前的版本参考这一篇。
MySQL5.6数据库双机主从热备配置
运行篇命令:# docker run -d -v /jenkins/mysql55:/var/lib/mysql -p 3306:3306 --name mysql55 -e MYSQL_ROO...
在导入sql备份文件到MySQL数据库中,无论物理机安装MySQL还是docker环境安装的MySQL,思路是一样的。首先,登录进入MySQL如果是物理的,则直接执行命令mysql-u-p&gt...
Nginx 健康检查命令services: mysql8: image: mysql:8.0.36#....忽略其他.... healthcheck: test
背景最近有些数据需要处理下,用程序来跑也简单,但是想着能否直接通过数据库来处理。就有了本文的MySQL replace 字符串替换函数使用教程了。MySQL replace 使用参考语句:UPD...
Centos MySql数据库找回root密码
前言本文主要讲解在Vert.x环境下与Mysql数据库连接和操作,实现基础的增删改查和事务,以及REST接口返回数据库中查询结果。项目引用之前的《Vert.x
mysql 数据库备份与还原命令1&gtl;导出某个数据库表结构(其他说明:-u 后面的root为用户名,-p后面的password为用户密码,dbname数据库名称)
环境准备dockerdocker-compsemysql 5.6+Gogs docker部署MySQL创建gogs数据库,创建一个空库即可。配置docker-compose.ymlversion...
centos6.5安装MySQL 5.6版本,并配置数据了链接数量数据库默认字符集utf8mb4支持Emoji表情4字节内容
MySQL索引优化,MySQL索引类型,MySQL索引怎么用MySQL索引怎么创建这里将会通过一些简单得sql进行讲解