Mysql5.7中如何设置主从复制

分类:编程技术 时间:2024-02-20 15:31 浏览:0 评论:0
0
本文主要向大家展示《如何在Mysql5.7中搭建主从复制》。内容简单、易懂、清晰。希望可以帮助您解答疑惑。让小编带领大家学习学习《在Mysql5.7中如何设置主从复制》一文。

1.概述

主从复制可以实现数据库备份和读写分离:

为了避免服务不可用,保证服务的正常运行为了保证数据的安全性和可靠性,我们需要部署至少两台或更多服务器来存储数据库数据,即需要将数据复制并部署在多台不同的服务器上,即使一台服务器出现故障,其他服务器也会出现故障仍然可以继续提供服务。
MySQL提供了主从复制功能,以提高服务可用性和数据安全可靠性。
主从复制是指服务器分为主服务器和从服务器塞尔版本。服务器,主服务器负责读写,从服务器只负责读。主从复制也称为主/从。主设备是主设备,从设备是从设备,但不是强制的,也就是说从设备也可以写,主设备也可以读。但一般情况下我们不会这样做。

2.主从复制架构

一主多从架构:

多主多从架构:

主从复制原理:

当主服务器上的数据发生变化时,将其写入二进制事件日志文件

slave从服务器会在一定的时间间隔内检测master服务器上的二进制日志,以检测是否发生变化。如果检测到主服务器的二进制事件日志发生变化,则启动一个I/O线程来请求主服务器的二进制事件日志

同时,主服务器为每个I/O线程启动一个dump线程,将二进制事件日志发送给它

p>

slave从服务器将保存接收到二进制事件日志到自己的本地中继日志文件

salve从服务器会启动SQL Thread从本地的中继日志中读取二进制日志。重播,使其数据与主服务器一致;

最后I/O Thread和SQL Thread会进入睡眠状态,等待下次被唤醒

3.一主多从搭建

搭建环境:
1. Linux 版本 CentOS 版本 6.9(最终版)
2. mysql-5.7.26-linux-glibc2.12 -x86_64.tar.gz下载地址

1.解压mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

#解压tar到/usr/local xzvf下mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz#将文件重命名为mv mysql-5.7。 26-linux-glibc2.12-x86_64.tar.gz mysql

2.克里吃了一个多实例数据目录

cd /usr/local/mysqlmkdir datacd data#master mkdir 3306#slave mkdir 3307


3.数据库初始化

#mysql在安装bin目录下执行#initialize-insecure表示不为MySQL数据库root用户生成随机密码,即root密码为空#Initialize 3306./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3306 --user=mysql#初始化3307./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3307 --user=mysql

如果发生错误< br/>yum install libaio-devel.x86_64
yum -y install numactl
4.创建各个数据库配置文件my.cnf

注意:
1.建议在Linux下创建该文件,防止之间编码不一致Windows 和 Linux
2。修改不同实例配置中的端口号
3.将修改后的my.cnf分别放入3306和3307文件夹

[client]port = 3306socket = /usr/local/mysql/数据/3306/mysql.sockdefault-character-set=utf8[mysqld] 端口=3306socket=/usr/local/mysql/data/3306/mysql.sockdatadir=/usr/local/mysql/data/3306log-error=/usr /local/mysql/data/3306/error.logpid-file = /usr/local/mysql/data/3306/mysql.pidcharacter-set-server=utf8lower_case_table_names=1autocommit = 1log-bin=mysql-binserver-id=3306< /前>

5.多实例启动

切换到/usr/local/mysql-5.7.24/bin目录,使用msyqld_safe命令指定配置文件并启动MySQL服务:

#其中--defaults-file为指定的配置文件,&表示后台启动。/mysqld_safe --defaults- file=/usr/local/ mysqll/data/3306/my.cnf &./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &

6.数据库初始化配置

分别在各个实例中配置,如3306:

 #客户端连接./mysql -uroot -p -P3306 -h227.0.0.1#修改Mysql密码alter user 'root'@'localhost'identified by 'root';#授权远程访问(这样远程客户端才能访问) grant *.* 上的所有权限均由 'root' 标识为 root@'%';#刷新配置刷新权限;

客户端连接测试

<强>7。数据库唯一ID配置

1.确认各实例正常启动并进行主从配置
2.关闭实例,在每个实例的my.cnf文件中添加如下配置

#/usr/local/mysql/bin 关闭示例./mysqladmin -uroot -p -P3307 -h227.0.0.1shutdown./mysqladmin -uroot -p -P3306 -h227.0.0.1 shutdown#新增配置 log-bin=mysql-bin #表示启用二进制日志 server-id=3307 #表示服务器编号,编号必须为unique 建议保持端口一致

加入后启动各个实例

./mysqld_safe --defaults -file=/usr/local/mysql/data/3306/my.cnf &./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &
< 7.主机设置
1.在主服务器上创建复制数据的账户并授权

#在/usr/local/mysql/bin目录下执行。 /mysql -uroot -p -P3306 -h227.0.0.1 授予 *.* 上的复制从站到由 'root ' 标识的 'copy'@'%';

2.查看主服务器状态

# mysql主服务器默认初始值: # File: mysql-bin.000001#Position: 154show master statuss;

3.如果master服务状态不是初始状态,需要重置状态

重置master;

7.从机设置

1.需要登录3306|3307|3308从机客户端

#在/usr/local/mysql/bin目录下执行 多个slave'|'分开./mysql -uroot -p -P3308|3309|3310 -h227.0.0.1

2.检查从机状态

#初始状态:空集显示从机状态;

3.如果不是初始状态,则重置

停止slave; #停止复制,相当于终止从服务器上的IO和SQL线程重置slave;

4.设置slave并设置host配置

将master改为master_host='主机ip',master_user='copy',master_port=host马萨诸塞州港口ster_password='连接主机密码',master_log_file='mysql-bin.000001',master_log_pos=154;

5.执行启动复制命令

启动slave;

6.查看从站状态

显示slavestatus \G;


7.测试主从复制

在主库创建表并同步从库构建成功!

如果在从库中进行写操作,从服务器将不再同步主库数据。在从库中执行此命令即可解决问题!

停止从属;设置全局 sql_slave_skip_counter =1;启动从属;显示从属状态\G;

如果主从复制速度慢,执行此命令

slave-parallel-type=LOGICAL_CLOCK Slave-parallel-workers=16 master_info_repository=TABLErelay_log_info_repository=TABLErelay_log_recovery=ON

以上是《Mysql5.7中如何设置主从复制》一文的全部内容,感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。如果您想了解更多知识,请关注行业资讯频道!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > Mysql5.7中如何设置主从复制

用户评论