MySQL 8.3.0 主从热备

|-----------------|----|-------|
| IP | 角色 | 版本 |
| 192.168.140.153 | 主 | 8.3.0 |
| 192.168.140.159 | 从 | 8.3.0 |

一、准备环境

1、卸载mariadb
bash 复制代码
rpm -qa | grep mariadb
rpm -e mariadb-libs --nodeps
2、安装依赖
bash 复制代码
yum -y install perl

二、安装MySQL

1、下载安装包
bash 复制代码
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.3.0-1.el7.x86_64.rpm-bundle.tar
2、解压
bash 复制代码
tar -xvf mysql-8.3.0-1.el7.x86_64.rpm-bundle.tar
3、安装
bash 复制代码
rpm -ivh mysql-community-common-8.3.0-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-plugins-8.3.0-1.el7.x86_64.rpm 
rpm -ivh mysql-community-libs-8.3.0-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-8.3.0-1.el7.x86_64.rpm 
rpm -ivh mysql-community-icu-data-files-8.3.0-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-8.3.0-1.el7.x86_64.rpm
4、启动服务
bash 复制代码
systemctl start mysqld
systemctl status mysqld

三、配置

1、修改密码并授权
bash 复制代码
# 查找初始密码
grep password /var/log/mysql.log

# 登录mysql
mysql -u root -p

# 重置密码(必须先重置,才允许执行其它操作)
mysql> alter user root@'localhost' identified with mysql_native_password by 'new_password';

# 授权
mysql> use mysql;
mysql> update user set host="%" where user="root";
mysql> select user,host from user where user='root';
+------+------+
| user | host |
+------+------+
| root | %    |
+------+------+
1 row in set (0.00 sec)
mysql> grant all on *.* to root@'%';
mysql> flush privileges;
2、修改配置文件
bash 复制代码
# 主服务器配置文件添加下面内容
server-id=1
log-bin=master_bin

# 从服务器配置文件添加下面内容
server-id=2

# 修改配置后重启服务
systemctl restart mysqld
3、创建同步账号(主服务器执行)
bash 复制代码
mysql -u root -p
mysql> use mysql;
# 创建同步使用的账号
mysql> create user master@'192.168.140.159' identified with mysql_native_password by 'password';
# 授予权限
mysql> grant replication slave on *.* to master@'192.168.140.159';
mysql> flush privileges;

# 查看master信息
mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master_bin.000001 |     1599 |              |                  |                   |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set, 1 warning (0.00 sec)
4、开启同步(从服务器执行)
bash 复制代码
# 关闭同步
mysql> stop slave;
# 修改同步信息
mysql> change master to master_host="192.168.140.153",master_user="master",master_password="password",master_log_file="master_bin.000001",master_log_pos=1599;
# 开启同步
mysql> start slave;
# 查看同步状态
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 192.168.140.153
                  Master_User: master
                  Master_Port: 3306
              Master_Log_File: master_bin.000001
                Relay_Log_Pos: 1371
        Relay_Master_Log_File: master_bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
                   Last_Errno: 0
             Master_Server_Id: 1
                  Master_UUID: 9ce1fe4b-1c9c-11ef-9e0a-000c2961bacc
             Master_Info_File: mysql.slave_master_info
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates

四、测试

1、新建数据库和表,并新增数据(主服务器执行)
bash 复制代码
# 创建库
mysql> create database test;
# 创建表
mysql> use test;
mysql> create table student ( id int auto_increment primary key, name varchar(50) not null, age int);
# 新增数据
mysql> insert into student (name,age) values ("final",15);
mysql> insert into student (name,age) values ("zhangsan",16);
mysql> insert into student (name,age) values ("lisi",19);
2、查询是否同步(从服务器查看)
bash 复制代码
mysql> select * from student;
+----+----------+------+
| id | name     | age  |
+----+----------+------+
|  1 | final    |   15 |
|  2 | zhangsan |   16 |
|  3 | lisi     |   19 |
+----+----------+------+
3 rows in set (0.00 sec)
相关推荐
这个DBA有点耶2 小时前
从症状到根因:数据库监控指标的分层方法与静态/动态阈值策略
数据库·mysql·代码规范
SelectDB3 小时前
时间旅行与快照能力速查:Doris 侧三条落地路径
大数据·数据库·数据分析
SelectDB3 小时前
云数仓成本结构拆解速查:五层计费 vs Doris / 托管形态
大数据·数据库·数据分析
SelectDB3 小时前
什么场景能承接与建议保留:Doris vs Snowflake 边界速查
大数据·数据库·数据分析
ProcessOn4 小时前
纯干货!MySql实战02:一条SQL更新语句执行流程大探索!
sql·mysql·sql server
这个DBA有点耶5 小时前
DELETE没删多少数据,表却越来越大——InnoDB删除空洞与页合并失效的根因
数据库·mysql·代码规范
ly76898 小时前
PostgreSQL 备份恢复策略:pg_basebackup、WAL 归档与 PITR 在企业 Java 系统中的落地
java·数据库·postgresql·pitr·pg_basebackup·wal 归档
小羊没烦恼!9 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
注塑机数据采集联网9 小时前
如何解决注塑机数据采集联网对接MES系统数据WiFi传输数据不稳问题
大数据·数据库·物联网·数据挖掘·数据分析