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

相关推荐

  1. MySQL8搭建

    2024-06-17 08:18:03       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-17 08:18:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-17 08:18:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-17 08:18:03       82 阅读
  4. Python语言-面向对象

    2024-06-17 08:18:03       91 阅读

热门阅读

  1. DAG(有向无环图)-入门基础

    2024-06-17 08:18:03       29 阅读
  2. PostgresSQL测评

    2024-06-17 08:18:03       31 阅读
  3. 苹果新型基于home app的骚扰

    2024-06-17 08:18:03       25 阅读
  4. HTML列表指南:有序、无序与自定义列表的妙用

    2024-06-17 08:18:03       25 阅读
  5. Cweek6

    Cweek6

    2024-06-17 08:18:03      27 阅读
  6. 力扣2517.礼盒的最大甜蜜度

    2024-06-17 08:18:03       31 阅读