docker部署mysql一主多从--主备复制模式

docker部署mysql一主多从–主备复制模式

根据实际安装的目录配置全局环境变量(root 用户执行)

如果已存在全局环境变量则无需配置

export LOCAL_IP=$(echo $(ip a | grep $(route -n | grep ^0.0.0.0 | awk '{print $8}') | grep "inet " | awk '{print $2}') | sed 's+/.*++')
sudo tee -a /etc/profile << EOF
export DEPLOY_HOME=/app
export LOCAL_IP=${LOCAL_IP}
EOF

安装 MySQL 服务器

  • 服务器:10.11.33.211,10.11.33.212,10.11.33.213

  • 部署账号:mysql

  • 创建数据目录
    #配置文件目录
    mkdir -p ${DEPLOY_HOME}/mysql/conf

    #日志文件目录
    mkdir -p ${DEPLOY_HOME}/mysql/logs
    
    #数据文件目录
    mkdir -p ${DEPLOY_HOME}/mysql/data
    
    #用于存放 sql 脚本
    mkdir -p ${DEPLOY_HOME}/mysql/script
    
  • docker 中使用的 mysql 配置
    cat > ${DEPLOY_HOME}/mysql/conf/my.cnf <<EOF
    [mysqld]
    # 该字段控制时间字段使用 CURRENT_TIMESTAMP 是否可以工作
    explicit_defaults_for_timestamp=0
    # 最大连接数
    max_connections = 4001
    # 表名存储为给定的大小和比较:
    # 0-表名存储为给定的大小和比较是区分大小写的
    # 1-在磁盘是小写的,但是比较的时候是不区分大小写
    # 2-表名存储为给定的大小写但是比较的时候是小写的
    lower_case_table_names=1
    # 修改时区
    default-time-zone = ‘+08:00’

    #慢日志时间设置/ 秒级
    long_query_time=0.2
    #开通慢sql
    slow_query_log=1
    #慢sql日志文件
    slow_query_log_file=/var/lib/mysql/mysql-slow.log 
    
    #mysql的同步的数据中是包含server-id的,
    #用于标识该语句最初是从哪个server写入的
    server-id=1
    log-bin=/var/lib/mysql/mysql-bin
    binlog_format=ROW 
    innodb_large_prefix=on
    innodb_file_format=BARRACUDA
    
    innodb_buffer_pool_size=12288M
    innodb_buffer_pool_instances=8
    
    innodb_write_io_threads=4
    innodb_read_io_threads=4
    EOF
    
  • 分别在三台机器上,启动 一主两从 mysql 并设置mysql挂载目录到容器
    sudo docker run -p 3306:3306 --name mysql
    –restart always
    -v ${DEPLOY_HOME}/mysql/conf:/etc/mysql
    -v ${DEPLOY_HOME}/mysql/logs:/var/log/mysql
    -v ${DEPLOY_HOME}/mysql/data:/var/lib/mysql
    -v ${DEPLOY_HOME}/mysql/script:/var/lib/mysql-files
    -e MYSQL_ROOT_PASSWORD=1017~Fulin
    -d local.docker-repo.com:5000/mysql:5.7

      # 在10.11.33.211上执行
    sudo docker run -p 3306:3306 --name mysql \
            --restart always \
            -v ${DEPLOY_HOME}/mysql/conf:/etc/mysql \
            -v ${DEPLOY_HOME}/mysql/logs:/var/log/mysql \
            -v ${DEPLOY_HOME}/mysql/data:/var/lib/mysql
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值