美文网首页数据库
mysql启动时自动执行初始建表脚本

mysql启动时自动执行初始建表脚本

作者: H_appiness | 来源:发表于2020-08-26 15:58 被阅读0次

    默认情况下,mysql镜像创建的docker容器启动时只是一个空的数据库实例,为了简化docker部署,我们需要在docker创建mysql容器的时,数据库和表已经自动建好,初始化数据也已自动录入,也就是说容器启动后数据库就可用了。这就需要容器启动时能自动执行sql脚本。
    在mysql官方镜像中提供了容器启动时自动执行/docker-entrypoint-initdb.d
    也就是说只要把你自己的初始化脚本放到/docker-entrypoint-initdb.d/文件夹下就齐活了

    # Dockerfile
    
    FROM mysql:5.7.28
    
    COPY ./db_aicube.sql /docker-entrypoint-initdb.d
    

    docker启动命令如下

    docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=db_aicube -d mysql:5.7.28
    

    db.aicube.sql如下:

    -- 创建数据库
    CREATE DATABASE IF NOT EXISTS db_aicube  DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_croatian_ci;
    
    -- 使用其数据库
    use db_aicube;
    
    --
    -- 表的结构 `auth_group`
    --
    
    CREATE TABLE `auth_group` (
      `id` int(11) NOT NULL,
      `name` varchar(150) COLLATE utf8_croatian_ci NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_croatian_ci;
    
    ···
    

    相关文章

      网友评论

        本文标题:mysql启动时自动执行初始建表脚本

        本文链接:https://www.haomeiwen.com/subject/ucqfsktx.html