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)
相关推荐
Evan10241 小时前
MySQL 8.4.7版本下载&安装详细教程(Win11环境)
mysql
2301_800050992 小时前
mysql
数据库·笔记·mysql
数据皮皮侠2 小时前
2m气温数据集(1940-2024)
大数据·数据库·人工智能·制造·微信开放平台
Psycho_MrZhang3 小时前
Redis 设计思想总结
数据库·redis·缓存
曹牧4 小时前
Java:Assert.isTrue()
java·前端·数据库
程序员葫芦娃4 小时前
【Java毕设项目】基于SSM的旅游资源网站
java·开发语言·数据库·编程·课程设计·旅游·毕设
2401_865854885 小时前
怎样挑选适合业务的数据库云服务?
数据库
lkbhua莱克瓦245 小时前
基础-函数
开发语言·数据库·笔记·sql·mysql·函数
福大大架构师每日一题5 小时前
dify 1.11.2 正式发布:向量数据库、安全增强、测试优化与多语言支持全面升级
数据库·安全
今天有个Bug5 小时前
【计算机毕业设计】流浪动物救助平台 - SpringBoot+Vue
sql·mysql·spring·vue·毕业设计·课程设计