• Centos实现Mysql8.4安装及主主同步


    8.4的Msyql在同步的时候与之前的版本有很大不同,这里记录一下安装流程

    Mysql安装

    官网下载
    选择自己的版本,选第一个
    在这里插入图片描述
    复制下载链接
    在这里插入图片描述
    服务器上创建一个msyql目录
    使用命令下载,链接换自己的

    wget https://dev.mysql.com/get/mysql84-community-release-el8-1.noarch.rpm
    

    下载后解压

    tar -xvf xxx.tar
    

    在这里插入图片描述

    解压后安装

    rpm -ivh *.rpm    --force --nodeps
    

    在这里插入图片描述

    启动mysql

    systemctl start mysqld
    

    查看状态

    systemctl status mysqld
    

    关闭mysql

    systemctl stop mysqld
    

    重启mysql

    systemctl restart mysqld
    

    设置开机自启动

    systemctl enable mysqld
    

    修改密码

    获取初始密码

    grep 'temporary password' /var/log/mysqld.log
    

    在这里插入图片描述

    用初始密码登录mysql

    mysql -u root -p
    

    修改密码安全等级为LOW

    set global validate_password.policy=LOW;
    

    修改密码最短长度

    set global validate_password.length=6;
    

    上面两步按需修改

    修改密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
    

    添加新用户

    CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    

    设置远程登录

    use mysql;
    select host, user from user;
    update user set host = '%' where user = 'root';
    

    退出重启

    exit
    
    systemctl restart mysqld
    

    主主复制

    意思是不管那台发生了改变,都会同步到另一台

    在第一台服务器上修改/etc/my.cnf文件

    vim /etc/my.cnf
    

    在后面加上这些,开启binlog
    在这里插入图片描述

    [mysqld]
    log-bin=mysql-bin
    server-id=1
    auto-increment-increment=2
    auto-increment-offset=1
    

    重启mysql

    systemctl restart mysqld
    

    进入mysql,查看mysql是否开启

    SHOW VARIABLES LIKE 'log_bin';
    

    在这里插入图片描述

    创建一个用户用来专门同步

    CREATE USER 'replica_user'@'%' IDENTIFIED BY 'your_password';
    GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
    FLUSH PRIVILEGES;
    

    获取二进制日志文件名和位置

    SHOW MASTER STATUS;
    

    如果使用的Mysql版本是8.4及以上,需要注意要使用下面的命令
    在这里插入图片描述

    SHOW BINARY LOG STATUS;
    

    官方说明文档

    在这里插入图片描述

    修改第二台服务器的my.cnf

    [mysqld]
    log-bin=mysql-bin
    server-id=2
    auto-increment-increment=2
    auto-increment-offset=2
    

    创建一个用户用来专门同步

    CREATE USER 'replica_user'@'%' IDENTIFIED BY 'your_password';
    GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
    FLUSH PRIVILEGES;
    

    获取二进制日志文件名和位置

    SHOW BINARY LOG STATUS;
    

    在这里插入图片描述

    配置同步

    • 第一台

    8.4以前的写法

    CHANGE MASTER TO
    MASTER_HOST='第二台的IP',
    MASTER_USER='第二台上用于同步的用户名',
    MASTER_PASSWORD='用户密码',
    MASTER_LOG_FILE='mysql-bin.000001', -- 用你在第二台服务器上获得的日志文件名
    MASTER_LOG_POS=555; -- 用你在第二台服务器上获得的位置
    START SLAVE; -- 开启备份
    STOP SLAVE; -- 停止备份
    SHOW SLAVE STATUS: -- 查看备份状态
    

    8.4后的写法

    CHANGE REPLICATION SOURCE TO
    SOURCE_HOST='第二台的IP',
    SOURCE_USER='第二台上用于同步的用户名',
    SOURCE_PASSWORD='用户密码',
    SOURCE_LOG_FILE='mysql-bin.000001', -- 用你在第二台服务器上获得的日志文件名
    SOURCE_LOG_POS=555; -- 用你在第二台服务器上获得的位置
    START REPLICA; -- 开启备份
    STOP REPLICA; -- 停止备份
    SHOW REPLICA STATUS; -- 查看备份状态
    

    第二台同上

    检查是否同步成功

    两台都用sql查询

    SHOW REPLICA STATUS;
    

    确保Slave_IO_RunningSlave_SQL_Running都显示为Yes
    在这里插入图片描述

    在第一台添加数据库test1
    在这里插入图片描述
    刷新第二台
    在这里插入图片描述
    可以看到已经同步过来了
    同样可以测试在第二台添加
    第一台也能同步
    删除其中一台里面的数据,另一台也会同步删除
    这里不做记录,我试过了
    可自行测试

  • 相关阅读:
    【翻译】Fast Patch-based Style Transfer of Arbitrary Style
    MyBatis 学习(七)之 缓存
    11 JSP
    android studio 项目生成apk的几个问题(备忘)
    什么是逗号表达式
    PostgreSQL执行计划:Bitmap scan VS index only scan
    通过 MSE 实现基于Apache APISIX的全链路灰度
    干货︱部分领域数字孪生白皮书及报告汇总(附下载)
    设计模式浅析(六) ·命令模式
    1.10 打造自带涨粉体质的小红书号,原来是有方法的【玩赚小红书】
  • 原文地址:https://blog.csdn.net/m0_47333020/article/details/139725406