zoukankan      html  css  js  c++  java
  • Docker安装MySQL 8.0.17 并挂载数据及配置文件,修改时区

    一般来说是不需要手动指定MySQL挂载卷,因为mysql会自动挂载,

    通过 dokcer inspect 你的容器名称 可以查看容器已挂载的路径 /var/lib/docker/volumes/855a71109c9ac92a8a9243cc5058aaa41******

    如果删除了容器,可以在重新run一个mysql的时候把“/var/lib/docker/volumes/855a71109c9ac92a8a9243cc5058aaa41******”这个挂上去,这样以前的数据也可以使用,

    如果在run的时候手动指定挂载卷,则mysql的数据会以指定的目录挂载

    1:下载镜像

    docker pull mysql:8.0.17

    2:启动

    # 运行mysql命名容器名称为mysql并且设置root账号初始密码为root
    docker run  -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD="root" -d mysql:8.0.17

    3:确定mysql配置文件路径

    #进入docker容器,mysql为刚安装的容器名称
    docker exec -it mysql bash
    
    # 查找Docker内,MySQL配置文件my.cnf的位置
    mysql --help | grep my.cnf

     4:创建本地路径并挂载Docker内数据

    mkdir -p /home/data/mysql/conf && mkdir -p /home/data/mysql/data
    # 将容器的配置复制到服务器
    docker cp mysql:/etc/mysql/my.cnf /home/data/mysql/conf/my.cnf
    # 修改字符集
    vim /home/data/mysql/conf/my.cnf
    character-set-server=utf8

    5:重新创建容器

    docker run --name mysql 
    -p 3306:3306
    -v /home/data/mysql/conf/my.cnf:/etc/mysql/my.cnf
    -v /home/data/mysql/data:/var/lib/mysql
    -v /home/data/mysql/log:/logs
    -e MYSQL_ROOT_PASSWORD=123456
    --restart=always
    -d mysql:8.0.17
    docker inspect mysql

    查看已挂载的卷就是指定的目录了

     

    6:到此mysql已经创建完毕,可以远程连接数据,创建测试数据库"test"

    7:查看挂载的本地data目录下是否有新建的数据库“test”,有说明挂载成功

    8:移除刚创建的容器,看看本地data数据盘,"test"数据是否依然存在

    9:重新部署mysql数据库docker容器,远程连接数据库,发现数据库依然存在"test"数据库,说明数据持久化成功

    10:修改时区

    vim /home/data/mysql/conf/my.cnf
    添加 default-time-zone = '+08:00'

    重启docker中的mysql容器即可,不是docker中的mysql重启mysql服务即可

    docker restart your_mysql_name

    再次进入mysql中查看当前时间和时区

    修改时区参考 https://blog.csdn.net/qq_28018283/article/details/80109290

  • 相关阅读:
    解释器模式
    命令模式
    责任链模式
    代理模式
    享元模式
    外观模式
    装饰器模式
    组合模式
    过滤器模式
    js广告浮动
  • 原文地址:https://www.cnblogs.com/sheseido/p/12708864.html
Copyright © 2011-2022 走看看