zoukankan      html  css  js  c++  java
  • docker中搭建MySQL服务

    docker中构建MySQL服务

    容器运行MySQL,实现在外部可以连到数据库服务进行增删改查。 要求:

    1. 宿主机系统重启完成后数据库服务自动启动

    2. 重新创建MySQL容器后,原数据还可以使用(即删除容器数据不丢失)

     

    具体实现:

    1. 利用docker获取MySQL镜像

      docker pull ecr.eisoo.com:5000/mysql:5.7.27

    [root@localhost ~]# docker pull ecr.eisoo.com:5000/MySQL:5.7.27
    5.7.27: Pulling from MySQL
    Digest: sha256:b16d058ac835a0a087d4e42a5c200abc2a4936ec73ff7a427b28257f66bb5c04
    Status: Image is up to date for ecr.eisoo.com:5000/MySQL:5.7.27
    ecr.eisoo.com:5000/MySQL:5.7.27

    2.配置文件

    [root@localhost ~]# mkdir my
    [root@localhost ~]# mkdir -p docker/MySQL/data docker/MySQL/conf
    • 在root目录下新建my目录,并新建docker/mysql/data 目录和docker/mysql/conf目录

    [client]
    port=3306
    default-character-set=utf8
    [MySQL]
    default-character-set=utf8
    [MySQLd]
    character_set_server=utf8
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    # 配置大小写不敏感
    lower_case_table_names=1
    • 进入root/my/docker/mysql/conf目录,新建my.cnf文件并对mysql进行配置

    3.目录、文件权限设置

    [root@localhost conf]# chmod -R 777 /root/my/docker/mysql
    [root@localhost conf]# cd /root/my/docker/mysql/conf
    [root@localhost conf]# chmod 644 my.cnf

    4.运行容器并挂载目录

    [root@localhost data]# systemctl enable docker.service
    • 设置docker开机自启动,实现MySQL在docker开机启动时也同时启动

    mysql[root@localhost conf]# docker run -d -it --restart=always --name mysqlL -p 3308:3306 -e mysql_ROOT_PASSWORD=driver --privileged=true -v /root/my/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /root/my/MySQL/data:/var/lib/mysql -v /root/my/docker/MySQL/logs:/var/log/mysql ecr.eisoo.com:5000/mysql:5.7.27
    • --name 容器指定名称

    • --restart=always 设置MySQL服务自启动

    • -e MySQL_ROOT_PASSWORD=driver 为MySQL设置root密码

    • -p 端口映射

    • -v 挂载宿主机目录到容器以实现删除容器后数据不丢失

    5.进入容器

    [root@localhost data]# docker exec -it mysql bash
    • 进行增删改查操作

    mysql> create database test;
    mysql> use test;
    mysql> create table test(name varchar(20),age int);
    mysql> insert test values('april',20),('tom',18),('mary',21);
    mysql> select * from test;
    +-------+------+
    | name | age |
    +-------+------+
    | april |   20 |
    | tom   |   18 |
    | mary |   21 |
    +-------+------+
    3 rows in set (0.00 sec)
    mysql> update test set name='lisa' where name='mary' ;
    mysql> select * from test;
    +-------+------+
    | name | age |
    +-------+------+
    | april |   20 |
    | lisa |   21 |
    +-------+------+
    2 rows in set (0.00 sec)

    6.删除容器

    [root@localhost data]# docker stop mysql
    [root@localhost data]# docker rm mysql

     

  • 相关阅读:
    pgspider sqlite mysql docker 镜像
    pgspider docker 镜像
    pgspider基于pg 的高性能数据可视化sql 集群引擎
    diesel rust orm 框架试用
    golang 条件编译
    Performance Profiling Zeebe
    bazel 学习一 简单java 项目运行
    一个好用node http keeplive agnet
    gox 简单灵活的golang 跨平台编译工具
    mailhog 作为smtp server mock工具
  • 原文地址:https://www.cnblogs.com/Aprilnn/p/11276136.html
Copyright © 2011-2022 走看看