zoukankan      html  css  js  c++  java
  • docker-compose 安装 mysql并初始化用户与sql文件

    docker-compose.yml文件

    version: '3'
     
    services:
      mysql8.0:
        # 镜像名
        image: mysql:8.0.21
        # 容器名(以后的控制都通过这个)
        container_name: mysql8.0
        # 重启策略
        restart: always
        environment:
          # 时区上海
          TZ: Asia/Shanghai
          # root 密码
          MYSQL_ROOT_PASSWORD: root
          # 初始化数据库(后续的初始化sql会在这个库执行)
          MYSQL_DATABASE: nacos_config
          # 初始化用户(不能是root 会报错, 后续需要给新用户赋予权限)
          MYSQL_USER: nacos
          # 用户密码
          MYSQL_PASSWORD: nacos
          # 映射端口
        ports:
          - 3306:3306
        volumes:
          # 数据挂载
          #- /root/mysql/data/:/var/lib/mysql/
          # 配置挂载
          #- /root/mysql/conf/:/etc/mysql/conf.d/
          # 初始化目录挂载,注意此处我只跑了这个挂载,只是为了说明其他配置不应该数据初始化
          - /root/mysql/init/:/docker-entrypoint-initdb.d/
        command:
          # 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
          --default-authentication-plugin=mysql_native_password
          --character-set-server=utf8mb4
          --collation-server=utf8mb4_general_ci
          --explicit_defaults_for_timestamp=true
          --lower_case_table_names=1

    如果在sql文件内,需要手动赋予用户权限

        # grant all privileges on dbname.tablename to 'userName'@'%';
        # 比如想给用户nacos赋予数据库test所有的表的权限并且不限制nacos用户的连接地址,代码如下
        grant all privileges on test.* to 'nacos'@'%';
        # 刷新权限
        flush privileges;

    三 mysql8.*才开始出现的坑

    1.初始化的用户不能是root!差评!

    2.默认密码策略的要改为mysql_native_password,否则就是报错!差评

    3.如果是几个.sql文件,记得写上user database语句,因为初始化顺序是按文件名来的。

  • 相关阅读:
    switch能否作用在作用在byte、long、string上面?
    websocket(转)
    equal和hashcode、==
    List常用方法
    String,Integer,Double等类型互相转换
    BigDecimal的转换和使用
    gitHub常用命令和技巧
    SQL语句
    SpringBoot注解
    vue格式化时间
  • 原文地址:https://www.cnblogs.com/ydymz/p/14225972.html
Copyright © 2011-2022 走看看