文章目录
- mysql80主从复制(一主一从)
-
-
- 一、环境
- 二、服务器master1操作
-
-
- 1.开启二进制日志
- [2. 创建复制用户](#2. 创建复制用户)
- [3. 服务器 slave1操作](#3. 服务器 slave1操作)
- [4. 在主数据库中添加数据](#4. 在主数据库中添加数据)
-
-
mysql80主从复制(一主一从)
一、环境
准备两台服务器,都进行以下操作
bash
#安装80镜像源
yum install https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm
#安装mysql80
yum install mysql-community-server -y
#开启数据库并修改密码,略
#准备域名,方便操作
vim /etc/hosts
#在最后插入以下数据
192.168.116.151 master1
192.168.116.152 slave1
bash
#检查网络连通性
ping master1
ping salve1
二、服务器master1操作
1.开启二进制日志
bash
vim /etc/my.cnf
log-bin=/var/lib/mysql/binlog
server-id=1 \\注意从服务器id不能一样,可随意更改
gtid_mode=ON
enforce_gtid_consistency=1
2. 创建复制用户
sql
#创建用户
create user 'rep'@'192.168.116.%' identified by '密码';
#给上允许复制权限
grant replication slave, replication client on *.* to 'rep'@'192.168.116.%' ;
如果原数据库有数据,请查看下方链接进行备份与恢复
mysql使用mysqldump备份与恢复
到时只需要将备份好的数据发送给从服务器进行恢复就好了
3. 服务器 slave1操作
如果主数据库(master)原先备份的有数据请先在从服务器(slave)上恢复之后再进行从下面操作,以防数据不完全
bash
change master to
master_host='master1', #IP地址,因为设置了域名,所以使用域名
master_user='rep', #主数据库创建的允许复制的用户
master_password='密码', #密码
master_auto_position=1; #自动定位日志文件位置
sql
#开启复制
start slave;
查看连接状态
show slave status;
状态为yes视为成功,如果不是在从数据库上使用rep用户连接主数据库,是否可以连接上
若是可以连上,再次检查配置change是否出错,如果出错
sql
#停止
stop slave;
#重新设置
reset master;
#再次
change master to 。。。。。
若是没有出错再次查看一下状态,有可能有延迟
4. 在主数据库中添加数据
sql
#创建数据库
CREATE DATABASE IF NOT EXISTS test;
#使用
USE test;
#创建表
CREATE TABLE IF NOT EXISTS t1 (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INT
);
#插入数据
INSERT INTO t1 (name, age) VALUES ('Alice', 30);
INSERT INTO t1 (name, age) VALUES ('Bob', 25);
INSERT INTO t1 (name, age) VALUES ('Charlie', 35);
#查看数据
SELECT * FROM t1;
在从数据库查看数据
同步已完成
回到顶层