关注我了解更多编程知识,国产编程语言仓颉 Cangjie
在这里插入图片描述

注意

只有容器首次启动时才会执行/docker-entrypoint-initdb.d下的文件
若非首次启动,删除挂在的data目录,再新建data

原理

参考
/docker-entrypoint-initdb.d
对此目录下的sql文件按照字母顺序执行
在这里插入图片描述

compose

version: '3'
services:
  anji-mysql7:
    image: mysql:5.7
    container_name: mysql7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: mysql_pwd
      TZ: Asia/Shanghai
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M;
    ports:
      - 49157:3306
    volumes:
      - ./mysql/init:/docker-entrypoint-initdb.d
      - ./mysql/sql:/sql
      - ./mysql/data:/var/lib/mysql

./mysql/init/userme.sql

DROP DATABASE IF EXISTS `userme`;
CREATE DATABASE IF NOT EXISTS `userme` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
use `userme`;

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users`  (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '用户名',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of users
-- ----------------------------
INSERT INTO `users` VALUES (1, 'xcrj1', 'pwd1');
INSERT INTO `users` VALUES (2, 'xcrj2', 'pwd2');
INSERT INTO `users` VALUES (3, 'xcrj3', 'pwd3');

SET FOREIGN_KEY_CHECKS = 1;

./mysql/init/roleme.sql

DROP DATABASE IF EXISTS `roleme`;
CREATE DATABASE IF NOT EXISTS `roleme` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
use `roleme`;

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for roles
-- ----------------------------
DROP TABLE IF EXISTS `roles`;
CREATE TABLE `roles`  (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of roles
-- ----------------------------
INSERT INTO `roles` VALUES (1, 'admin');
INSERT INTO `roles` VALUES (2, 'common');
INSERT INTO `roles` VALUES (3, 'visitor');

SET FOREIGN_KEY_CHECKS = 1;

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐