MySQL搭建主从备份读写分离(MySQL5.7案例)

配置步骤

首先准备两台CentOS7(其他操作也行,本文由CentOS7做讲解),保证两台机器能够ping通

MySQL搭建主从备份读写分离(MySQL5.7案例)_第1张图片

并且包装两台服务器当中安装同样版本的数据库,可参考我写的MySQL5.7安装文档https://blog.csdn.net/m0_51510236/article/details/113791490

MySQL搭建主从备份读写分离(MySQL5.7案例)_第2张图片

然后使用其中一台作为主数据库(写、更改、删除都在这个里面),这里我是用 192.168.235.5 作为主数据库,用 192.168.235.7 作为从数据库(读可以在这个里面)。在 192.168.235.5 服务器当中修改 /etc/my.cnfmysqld 添加如下配置:

# [mysqld]
server-id=5 # 建议使用IP地址的后缀,因为本机IP地址为 192.168.235.5 ,所以server-id为5
log-bin=master-bin
log_bin_index=master-bin.index
binlog_do_db=xiaohh_user  # xiaohh_user是要同步的数据库的名称,不写默认同步所有数据库
# 需要排除的数据库
binlog_ignore_db=information_schema
binlog_ignore_db=mysql
binlog_ignore_db=performance_schema
binlog_ignore_db=sys

写好之后:

MySQL搭建主从备份读写分离(MySQL5.7案例)_第3张图片

然后使用 systemctl restart mysqld 重启数据库服务器,然后使用 show master status; 查询MySQL的 FilePosition

在这里插入图片描述
192.168.235.7 的从服务器上按照同样的方式配置上如下配置,然后从其服务器

# [mysqld]
server-id=7 # 建议使用IP地址的后缀
log-bin=slave-bin
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index

然后在 192.168.235.7 当中执行如下SQL:

change master to master_host='192.168.235.5', master_port=3306, master_user='root', master_password='root', master_log_file='master-bin.000001', master_log_pos=154;

以上SQL的讲解:

# 指定主数据库的地址
master_host='192.168.235.5'

# 指定主数据库的端口
master_port=3306

# 指定主数据库的登陆用户名
master_user='root'

# 指定主数据库的登陆密码
master_password='root'

# 在上一步当中利用 show master status; 命令查询出来的 File 字段
master_log_file='master-bin.000001'

# 在上一步当中利用 show master status; 命令查询出来的 Position 字段
master_log_pos=154

目前两台数据库服务器是没有 xiaohh_user 这个数据库的

MySQL搭建主从备份读写分离(MySQL5.7案例)_第4张图片

192.168.235.7 数据库执行命令:

start slave;

我们使用SQL语句在 192.168.235.5 主服务器上创建这个数据库:

CREATE DATABASE `xiaohh_user`;
USE `xiaohh_user`;

CREATE TABLE `user` (
  `user_id` BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '用户id',
  `username` VARCHAR(50) NOT NULL COMMENT '用户名',
  `age` TINYINT UNSIGNED DEFAULT 18 COMMENT '年龄',
  `gender` TINYINT UNSIGNED DEFAULT 2 COMMENT '性别;0=男,1=女,2=未知'
) COMMENT '用户表';

查看效果:

MySQL搭建主从备份读写分离(MySQL5.7案例)_第5张图片

192.168.235.5 插入一条数据并在从数据库当中查看:

INSERT INTO `user` (`username`, `age`, `gender`) VALUES ('XiaoHH', '24', '0');

192.168.230.7 从数据库当中查看:

MySQL搭建主从备份读写分离(MySQL5.7案例)_第6张图片

常见坑点

应为我是在 VMware workstation 里面克隆的虚拟机,所以主数据库和从数据库在 auto.cnf 里面的uuid相同,我们可以在从数据库当中改一下uuid,这个文件默认是在 /var/lib/mysql/auto.cnf,随意更改最后一个字母或数字即可(毕竟这东西可以给世界上每一粒沙子编一个uuid,如果还重复,那么你可以去买彩票了):

MySQL搭建主从备份读写分离(MySQL5.7案例)_第7张图片

从新启动集群,然后就正常了

你可能感兴趣的:(MySQL,mysql,数据库)