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

作者 : admin 本文共2141个字,预计阅读时间需要6分钟 发布时间: 2024-06-16 共1人阅读

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

Mysql安装

官网下载
选择自己的版本,选第一个
Centos实现Mysql8.4安装及主主同步插图
复制下载链接
Centos实现Mysql8.4安装及主主同步插图(1)
在服务器上创建一个msyql目录
使用命令下载,链接换自己的

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

下载后解压

tar -xvf xxx.tar

Centos实现Mysql8.4安装及主主同步插图(2)

解压后安装

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

Centos实现Mysql8.4安装及主主同步插图(3)

启动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

Centos实现Mysql8.4安装及主主同步插图(4)

用初始密码登录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
Centos实现Mysql8.4安装及主主同步插图(5)

[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';

Centos实现Mysql8.4安装及主主同步插图(6)

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

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

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

SHOW MASTER STATUS;

如果使用的Mysql版本是8.4及以上,需要注意要使用下面的命令
Centos实现Mysql8.4安装及主主同步插图(7)

SHOW BINARY LOG STATUS;

官方说明文档

Centos实现Mysql8.4安装及主主同步插图(8)

修改第二台服务器的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;

Centos实现Mysql8.4安装及主主同步插图(9)

配置同步

  • 第一台

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
Centos实现Mysql8.4安装及主主同步插图(10)

在第一台添加数据库test1
Centos实现Mysql8.4安装及主主同步插图(11)
刷新第二台
Centos实现Mysql8.4安装及主主同步插图(12)
可以看到已经同步过来了
同样可以测试在第二台添加
第一台也能同步
删除其中一台里面的数据,另一台也会同步删除
这里不做记录,我试过了
可自行测试

本站无任何商业行为
个人在线分享 » Centos实现Mysql8.4安装及主主同步
E-->