MySQL中实现简单的主从复制

项目名称:构建一个简单的MySQL主从复制集群

项目环境:两台Linux操作系统的服务器(虚拟机)CentOS7.9 / MySQL5.7.33

项目描述:
为了提升MySQL的并发能力构建一个简单的MySQL集群,并实现读写分离,大大提高MySQL集群的业务处理能力。同时深入学习MySQL的整体部署和对集群架构的理解。

项目步骤:

1.两台服务器的基本信息如下:
在这里插入图片描述

2.在准备好的的2台Linux系统的机器上使用脚本一键安装部署好二进制版本的MySQL
在master服务器上配置/etc/my.cnf文件中开启二进制日志文件并配置好server_id


[mysqld_safe]

[client]
socket=/data/mysql/mysql.sock

[mysqld]
socket=/data/mysql/mysql.sock
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf8
#开启二进制日志文件
log_bin 
#配置server_id
server_id = 1

[mysql]
auto-rehash
prompt=\u@\d \R:\m  mysql>

slave服务器上只需在/etc/my.cnf文件中添加server_id

[mysqld_safe]

[client]
socket=/data/mysql/mysql.sock

[mysqld]
socket=/data/mysql/mysql.sock
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf8
#配置server_id
server_id = 2

[mysql]
auto-rehash
prompt=\u@\d \R:\m  mysql>

两台服务器都需重启MySQL服务

[root@master mysql]# service mysqld restart

2.在master的MySQL服务器创建一个给slave服务器上拉取二进制日志文件的用户

#登录MySQL服务
[root@master ~]# mysql -uroot -p'123456'
#创建一个二进制文件拉取用户
root@(none) 22:01  mysql> create user 'slave_rep'@'192.168.88.88' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
#给创建的用户进行拉取授权
root@(none) 22:02  mysql> grant replication slave on *.* to 'slave_rep'@'192.168.88.88' ;
Query OK, 0 rows affected (0.00 sec)

3.在master服务器上做一个全备份,导出数据再导入slave服务器上,保持两条服务器的初始数据一致
在master服务器上做一个全备份,将备份文件放到/backup/目录下叫做all_ab.sql,并使用scp传输到slave服务器上

# 在master服务器上做一个全备份
[root@master mysql]# mysqldump -uroot -p'123456' --all-databases > /backup/all_db.sql
# 使用scp传输到slave服务器上
[root@master backup]# scp /backup/all_db.sql root@192.168.88.88:/root

在slave服务器上导入传输过来的二进制文件

[root@slave ~]# mysql -uroot -p'123456' < all_db.sql

查看master服务器上的MySQL当前二进制日志存储文件为master-bin.000008,位置号为154

root@(none) 22:25  mysql>root@(none) 22:25  mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000008 |      154 |              |                  |                   |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

4.在slave服务器上配置masters上拉取二进制日志数据文件的用户名和密码以及二进制文件名称和位置号等信息

root@(none) 23:03  mysql> CHANGE MASTER TO MASTER_HOST='192.168.88.100',
    ->  MASTER_USER='slave_rep',
    ->  MASTER_PASSWORD='123456',
    ->  MASTER_PORT=3306,
    ->  MASTER_LOG_FILE='master-bin.000008',
    ->  MASTER_LOG_POS=154;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

5.在master和slave服务器上都关闭防火墙和selinux

[root@mysql ~]# service firewalld stop
[root@mysql ~]# systemctl disable firewalld 

6.在slave服务器上启动slave服务,看IO线程和SQL线程是否启动

root@(none) 23:17  mysql>start slave;
Query OK, 0 rows affected (0.00 sec)
root@(none) 23:18  mysql>show slave status \G;

如果Slave_IO_Running和Slave_SQL_Running都显示yes,则说明IO线程和SQL线程启动成功
在这里插入图片描述

7.验证主从复制的效果
在master上的MySQL服务中创建库或插入删除数据,在slave中能看到相应的数据,则说明主从复制集群构建成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值