• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

使用 docker 一键部署 MySQL

武飞扬头像
wzy0623
帮助1

目录

1. 前期准备

2. 导入镜像

3. 创建部署脚本文件

4. MySQL 服务器配置文件模板

5. 执行脚本创建容器

6. 后续工作

7. 基本维护


1. 前期准备

        新部署前可以从仓库(repository)下载 MySQL 镜像,或者从已有部署中的镜像生成文件:

  1.  
    # 查看当前本地镜像
  2.  
    docker images
  3.  
    # 生成本地镜像文件
  4.  
    docker save <IMAGE ID> -o mysql_8023.tar

2. 导入镜像

  1.  
    # 在新部署的机器上导入镜像
  2.  
    docker load -i mysql_8023.tar
  3.  
    docker images

3. 创建部署脚本文件

mysql-deploy.sh 文件内容如下:

  1.  
    #!/bin/bash
  2.  
     
  3.  
    # 生成目录
  4.  
    mkdir -p /usr/local/docker/mysql/mysql-files
  5.  
    mkdir -p /usr/local/docker/mysql/conf
  6.  
    mkdir -p /usr/local/docker/mysql/logs
  7.  
    mkdir -p /usr/local/docker/mysql/data
  8.  
     
  9.  
    # 将配置文件复制到相应目录
  10.  
    cp /root/my.cnf.template /usr/local/docker/mysql/conf/my.cnf
  11.  
     
  12.  
    # 修改属主
  13.  
    chown -R polkitd:root /usr/local/docker/mysql/
  14.  
     
  15.  
    # 创建容器
  16.  
    docker run -p 3306:3306 \
  17.  
        -v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
  18.  
        -v /usr/local/docker/mysql/conf:/etc/mysql \
  19.  
        -v /usr/local/docker/mysql/logs:/var/log/mysql \
  20.  
        -v /usr/local/docker/mysql/data:/var/lib/mysql \
  21.  
        -e MYSQL_ROOT_PASSWORD=root \
  22.  
        --name mysql \
  23.  
        --restart=always \
  24.  
        -e TZ=Asia/Shanghai \
  25.  
        -d cbe8815cbea8
学新通

4. MySQL 服务器配置文件模板

my.cnf.template 文件内容如下:

  1.  
    [mysqld]
  2.  
    max_allowed_packet = 1G
  3.  
    explicit_defaults_for_timestamp=0
  4.  
    lower_case_table_names=1
  5.  
    log_timestamps=SYSTEM
  6.  
    sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
  7.  
    binlog_expire_logs_seconds=259200
  8.  
    secure_file_priv=''
  9.  
    log_bin_trust_function_creators=on
  10.  
    character-set-server = utf8mb4
  11.  
    default_authentication_plugin=mysql_native_password
  12.  
    datadir=/var/lib/mysql/
  13.  
    socket=/var/run/mysqld/mysqld.sock
  14.  
     
  15.  
    wait_timeout=30
  16.  
    innodb_buffer_pool_size = 4G
  17.  
    max_connections = 1000
  18.  
     
  19.  
    default-time-zone = ' 8:00'
  20.  
     
  21.  
    port = 3306
  22.  
    skip-name-resolve 
  23.  
     
  24.  
    innodb_print_all_deadlocks=1
  25.  
    log_output='table'
  26.  
     
  27.  
    server-id = 2955
  28.  
     
  29.  
    innodb_max_dirty_pages_pct = 90
  30.  
    innodb_lock_wait_timeout = 120
  31.  
     
  32.  
    gtid-mode = off
  33.  
     
  34.  
    local_infile=0
  35.  
    log_error='/var/lib/mysql/master.err'
  36.  
    skip_symbolic_links=yes
  37.  
     
  38.  
    [mysqldump]
  39.  
    quick
  40.  
    max_allowed_packet = 1G
  41.  
     
  42.  
    [mysqld_safe]
  43.  
    open-files-limit = 8192
学新通

5. 执行脚本创建容器

./mysql-deploy.sh

6. 后续工作

  1.  
    # 进入容器
  2.  
    docker exec -it mysql /bin/bash
  3.  
    # 登录 MySQL
  4.  
    mysql -uroot -proot -S /var/lib/mysql/mysqld.sock
  5.  
    # 创建用户
  6.  
    create user dba identified by '123456';
  7.  
    grant all on *.* to dba with grant option;

7. 基本维护

  1.  
    # 查看镜像
  2.  
    docker images
  3.  
    # 查看容器
  4.  
    docker ps
  5.  
    # 查看容器详细信息
  6.  
    docker inspect <CONTAINER ID>
  7.  
    # 重启容器
  8.  
    docker restart mysql
  9.  
    # 停止容器
  10.  
    docker stop mysql
  11.  
    # 删除容器
  12.  
    docker rm mysql

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfifkgf
系列文章
更多 icon
同类精品
更多 icon
继续加载