• MySQL8-主从搭建


    三台服务器

    192.168.56.70	主
    192.168.56.71	从
    192.168.56.72	从
    
    • 1
    • 2
    • 3

    关闭防火墙

    停止:systemctl stop firewalld 
    禁用:systemctl disable firewalld
    
    • 1
    • 2

    配置免密

    Linux配置免密

    主从节点都安装启动

    wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
    yum localinstall mysql80-community-release-el7-5.noarch.rpm
    yum clean all
    yum makecache
    yum install -y mysql-community-server
    systemctl start mysqld
    systemctl status mysqld
    systemctl enable mysqld
    yum list |grep mysql-community
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    修改MySQL密码

    #查看root初始化密码
    grep "password" /var/log/mysqld.log
    
    mysql -uroot -p'取到的初始化密码'
    #分别登录三台mysql
    mysql -uroot -p'/=2KlUfHs>.o'
    mysql -uroot -p'EiQtusd1=QL9'
    mysql -uroot -p'O
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    --修改密码策略,三台都执行
    --第一次 安装好mysql,要先修改下密码,再设置简单密码策略,否则会报错ERROR 1820 (HY000)
    alter user user() identified by "Mysql=1357";
    
    set global validate_password.policy=LOW;
    set global validate_password.mixed_case_count=0;
    set global validate_password.number_count=0; 
    set global validate_password.special_char_count=0; 
    set global validate_password.length=1;
    set global validate_password.check_user_name='OFF';
    --这里将roo密码修改为 root
    alter user user() identified by 'root';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    登录MySQL
    mysql -uroot -p'root'
    
    • 1
    • 2

    主节点添加主从同步账户(只在主节点执行)

    --主节点添加主从同步账户
    --只在主节点执行
    CREATE USER 'copy'@'%' IDENTIFIED BY '123456';
    alter user 'copy'@'%' identified with mysql_native_password by '123456';
    grant all privileges on *.* to 'copy'@'%' with grant option;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    开启二进制日志文件和添加server-id

    #先停止MySQL
    systemctl stop mysqld
    vim /etc/my.cnf
    --主节点添加
    log-bin=mysql-bin
    server-id=70
    --从节点1添加,从数据库开启只读模式,避免和 主节点数据不一致
    server-id=71
    read_only = 1
    super_read_only = 1
    --从节点2添加,从数据库开启只读模式,避免和 主节点数据不一致
    server-id=72
    read_only = 1
    super_read_only = 1
    --注意,注意,注意,只有master节点有mysql-bin配置,每个节点的server-id必须不同
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    #启动MySQL
    systemctl start mysqld
    
    • 1
    • 2

    主节点mysql重置偏移量(只在主节点执行)

    #只在主节点执行
    mysql -uroot -proot
    
    • 1
    • 2
    --重置偏移量如果不重置,从节点也会创建copy用户
    reset master;
    show master status;
    --获取到二进制文件名字 : 
    --mysql-bin.000001
    --Position : 157
    --这里获取的信息之后会用到
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注册从节点(只在从节点执行)

    --只在从节点执行
    --参数解析:
    --master_host : 主节点主机
    --master_user : 第2步创建的主从同步账户
    --master_port : 主节点mysql服务的端口号,因为没有这里改过所以是 3306
    --master_password : 第2步创建的主从同步账户的密码
    --master_log_file : 第4步获取的二进制文件名字
    --master_log_pos : 第4步获取的Position值
    
    stop slave;
    reset slave;
    change master to master_host='192.168.56.70',master_user='copy',master_port=3306,master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=157;
    
    --启动 启动所有从节点的slave
    start slave;
    show slave status \G;
    --以下两项必须是yes
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    --如果出现Slave_IO_Running: Connecting
    --①可能防火墙没关
    --②可能创建copy用户的时候,从节点也执行创建了,从节点删除copy用户,重新执行本步骤
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    测试主从

    主节点创建数据库,在从节点查询;

    MySQL主从修复

    重新执行步骤:
    主节点mysql重置偏移量(只在主节点执行)
    注册从节点(只在从节点执行)

  • 相关阅读:
    剑指offer 52 两个链表的第一个公共结点
    这一秒,困扰了程序员50年
    MySQL的Explain总结
    Cortex-M系列处理器偶发死机定位方法
    高斯分布可视化
    echarts散点图的圆点设置成不同的自定义图片且使用本地静态资源图片的写法
    一键将Web页面保存至Anki
    暑期JAVA学习(41.2)TCP通信——同时接受多个客户端消息
    【QT5之QFtp模块】编译及使用
    RabbitMQ 如何保证消息不丢失
  • 原文地址:https://blog.csdn.net/manweizhizhuxia/article/details/126106558