IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 基于docker实现mysql主从复制 -> 正文阅读

[系统运维]基于docker实现mysql主从复制

基于docker实现mysql主从复制

俩台机器,一主一从,主节点:10.0.8.17,从节点:10.0.8.14

基于docker部署mysql(主从节点都执行)

  • docker run -p 3306:3306 --name mysql -v /home/mysql/config:/etc/mysql -v /home/mysql/logs:/logs -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -it --privileged=true mysql:8.0.18

    /etc/mysql:mysql默认配置文件路径
    /var/lib/mysql:数据存储位置
    MYSQL_ROOT_PASSWORD=123456 设置root用户密码
    --privileged=true 权限提升 真root权限
    
    
  • 修改配置文件

    首先 my.cnf,在[mysqld]下增加一行:skip-grant-tables;
    重启mysql:docker restart mysql
    进入mysql容器:docker exec -it mysql /bin/bash
    
    
  • 登录mysql修改密码开放远程连接权限

    mysql -uroot -p #提示输入密码,直接回车即可跳过验证
    FLUSH PRIVILEGES;#不执行这步会报错
    set password for root@localhost = '新密码';
    ALTER USER 'root'@'%' IDENTIFIED BY '新密码' PASSWORD EXPIRE NEVER; #修改加密规则 ,
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码' ; #更新一下用户的密码 
    grant all privileges on *.* to 'root'@'%' with grant option; #开放远程访问
    FLUSH PRIVILEGES;
    quit;
    
    
  • 再次修改配置

    首先 my.cnf,注释skip-grant-tables;
    重启mysql:docker restart mysql
    进入mysql容器:docker exec -it mysql /bin/bash
    mysql -uroot -p #提示需要密码验证,此时就不可以跳过了
    
    
配置主从复制
  • 修改主节点配置

    mysql的配置文件都保存在 /etc/mysql下(容器内),映射到宿主机目录是 /home/mysql/config
    
    cd  /home/mysql/config
    vim my.conf #添加以下内容到[mysqld]
    
    ###要给从机同步的库(如果不写,默认全部同步)
    ##binlog-do-db=db01
    ###不给从机同步的库(多个写多行)
    ##binlog-ignore-db=mysql
    ##binlog-ignore-db=information_schema
    ##binlog-ignore-db=performance_schema
    ##binlog-ignore-db=performance_schema
    ##binlog-ignore-db=sys
    ###自动清理 7 天前的log文件,可根据需要修改
    expire_logs_days=7
    #### 开启二进制日志功能,可以随便取(关键)
    log-bin=master-bin
    ### 唯一标识
    server-id=888
    
    
  • 重启主节点mysql
    docker restart mysql

  • 修改从节点配置

    vim /home/mysql/config/my.conf #添加以下内容到[mysqld]  ,容器内对应路径/etc/mysql/my.conf
    ##要给从机同步的库(如果不写,默认全部同步)
    #binlog-do-db=db01
    ##不给从机同步的库(多个写多行)
    #binlog-ignore-db=mysql
    #binlog-ignore-db=information_schema
    #binlog-ignore-db=performance_schema
    #binlog-ignore-db=performance_schema
    #binlog-ignore-db=sys
    ##自动清理 7 天前的log文件,可根据需要修改
    expire_logs_days=7
    ### 开启二进制日志功能,可以随便取(关键)
    log-bin=slave-bin
    ## 唯一标识
    server-id=666
    
    
  • 重启从节点mysql

主从同步
  • 查看主节点状态

    --通过该命令可以查看master数据库当前正在使用的二进制日志及当前执行二进制日志位置
    show master status
    
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9XdrFe6J-1640182676684)(https://cdn.jsdelivr.net/gh/chenguod/picture/202112212033243.png)]

  • 进入从节点开始同步

    change master to
    master_host='10.0.8.17',
    master_user='root',
    master_password='123456',
    MASTER_LOG_FILE='master-bin.000001',
    MASTER_LOG_POS=7475567 ;
    
    start slave;  ##slave:从节点 master:主节点   stop slave 停止slave。reset slave重启slave。 reset master重启master
    
    master_host :主节点的地址,指的是容器的独立ip
    master_port :主节点的端口号,指的是容器的端口号(默认3306)
    master_user :用于数据同步的用户
    master_password :用于同步的用户的密码
    master_log_file :指定从节点从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
    master_log_pos :从哪个 Position 开始读,即上文中提到的 Position 字段的值
    
    
  • 查看状态

    show slave status;
    如下所示即为成功,现在在主节点新建表或者增加数据,在从节点即可看到。
    
    

    image-20211221204012719

? image-20211221204040678

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 16:04:59  更:2021-12-23 16:06:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:46:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码