MySQL数据库一主一从集群配置

环境
  • 环境三部曲

    • 1.全新服务器-互相通信
    • 2.全新安装mysql8.0-分别安装
    • 3.配置域名解析
      这里来讲一主一从的第二种连接方式,第一种的话可以参考下面连接:
      第一种方式
一主一从(M-S)(2)
需求
  • 实验2与上一个实验需求基本相同。

    master1 作为主mysql

    master2 作为从mysql。

  • 不同之处,使用了 "

    gtid_mode=ON

    enforce_gtid_consistency=1"

    该属性自动记录position位置。不需要手动指定了。

注释:

复制代码
gtid_mode=ON 意味着你的服务器将启用 GTID
enforce_gtid_consistency=1
enforce_gtid_consistency 是强制统一全局数据标识符,1是开启
环境
  • 因与实验1功能相同

  • 请重置master2数据库

    powershell 复制代码
    # systemctl stop mysqld
    # rm -rf /var/lib/mysql/*
    # systemctl start mysqld
    # grep password /var/log/mysqld.log
    # mysqladmin -uroot -p'老的密码' password 'Lixinyi@123'
    
    
    # mysql -uroot -p'Lixinyi@123'

master1

  • 1 启动二进制日志,服务器ID,GTID

    复制代码
     vim /etc/my.cnf
     
     log_bin 
     server-id=1 
     gtid_mode=ON 
     enforce_gtid_consistency=1
     
     
     systemctl restart mysqld
  • 2 授权复制用户rep(略)

bash 复制代码
grant replication slave,replication client on *.* to 'rep'@'192.168.145.%' identified by 'Lixinyi@123';

flush privileges;
  • 3 备份数据

    powershell 复制代码
    # mysqldump -p'Lixinyi@123' --all-databases --single-transaction --master-data=2 --flush-logs > `date +%F-%H-%M`-mysql-all.sql
    
    master-data=2设置为2,已经不需要这个标记了。
    powershell 复制代码
    # scp 2024-07-15-03-38-mysql-all.sql     master2:/tmp
  • 4 模拟数据变化

    sql 复制代码
    mysql>insert into master1db.master1tab values (6666666666);
    mysql> select * from master1db.master1tab;
(master2)
  • 1 测试rep用户是否可用

    • master2

      复制代码
      mysql -h master1 -urep -p'Lixinyi@123'
      • 预防账户问题。
      • 注意防火墙应该关闭
  • 2 启动二进制日志,服务器ID,GTID

    复制代码
     vim /etc/my.cnf 
     log_bin 
     server-id=2 
     gtid_mode=ON 
     enforce_gtid_consistency=1
     
     
     systemctl restart mysqld
    • 测试配置是否有问题,如果启动失败。请检查配置。
  • 3 手动恢复master1数据

    powershell 复制代码
     mysql>set sql_log_bin=0;  //临时关闭二进制日志,退出数据库就又启动了
     mysql>source /tmp/2024-07-15-03-38-mysql-all.sql
     mysql>select * from master1db.master1tab;
    • 该实验的关键效果即将出现。
  • 4 设置主服务器

    复制代码
    mysql> change master to
    master_host='192.168.145.141',
    master_user='rep',
    master_password='Lixinyi@123',
    master_auto_position=1;
    • 注意,和前一个实验比少了两行

      复制代码
      mysql> change master to master_host='192.168.145.141', master_user='rep', master_password='Lixinyi@123', master_log_file='localhost-bin.000002', master_log_pos=154;
    复制代码
      start slave;
bash 复制代码
show slave status\G;

5 返回主服务器(master1)更新数据,在从服务器(master2)观察是否同步。

相关推荐
合作小小程序员小小店2 分钟前
web网页开发,在线%档案管理%系统,基于Idea,html,css,jQuery,java,ssh,mysql。
java·前端·mysql·jdk·html·ssh·intellij-idea
合作小小程序员小小店6 分钟前
web网页开发,在线%物流配送管理%系统,基于Idea,html,css,jQuery,java,ssh,mysql。
java·前端·css·数据库·jdk·html·intellij-idea
2501_941142938 分钟前
基于区块链的数字身份管理:探索安全与隐私的未来
网络·数据库·人工智能
LoneEon30 分钟前
Ubuntu 上搭建 Redis 3 节点集群(6 实例:3主3从)
数据库·redis·缓存
chxii34 分钟前
在 Spring Boot 中,MyBatis 的“自动提交”行为解析
java·数据库·mybatis
wind_one11 小时前
13.基础--SQL--DQL-聚合函数
数据库·sql
猿小喵1 小时前
浅谈MySQL的redo日志
数据库·mysql
陳陈陳2 小时前
AIGC 时代,用自然语言操作数据库:SQLite + LLM 的轻量级实践
前端·数据库·python
用户7227868123442 小时前
MySQL高级运维核心技术:事务处理、安全管理与性能优化
mysql
AI绘画小332 小时前
【网络安全】Wireshark 抓包过滤:源 / 目的 IP 过滤 + 命令大全
数据库·tcp/ip·测试工具·安全·web安全·wireshark