实现MySQL的主从复制

什么是MySQL集群,为什么要做主从复制?


MySQL集群是为了解决单一MySQL服务器性能瓶颈、提高数据库的可用性、和扩展性而设计的一种解决方案。 
为了解决服务器性能瓶颈,面对大流量并发时所产生的查询缓慢宕机等问题,在主机出现问题时,可以快速切换到从库提供服务,降低主库的访问压力,可以在从库上执行备份,以避免备份期间影响主库的服务

必要性:数据库服务器和其他的前端业务服务器一样,也存在性能短缺的问题,当面对大流量的并发是,数据库服器往往出现查询缓慢宕机等问题,所以要进行扩展

主从同步的作用:

    1、master记录二进制日志bin_log,MySQL讲事务写入二进制日志,即使事务种的语句都i是交叉执行的,在事件写入二进制日志完成后,master通知存储引擎提交事务
    2、slave打开I/O线程,I/O线程在master打开一个普通的连接,然后开始读取bin_log
    3、从机打开sql线程,从bin_log日志读取事件,并重新执行其中的事件更新slave数据,使其与master中的数据一致

主从同步的原理:

    1、master记录二进制日志bin_log,MySQL讲事务写入二进制日志,即使事务种的语句都i是交叉执行的,在事件写入二进制日志完成后,master通知存储引擎提交事务
    2、slave打开I/O线程,I/O线程在master打开一个普通的连接,然后开始读取bin_log
    3、从机打开sql线程,从bin_log日志读取事件,并重新执行其中的事件更新slave数据,使其与master中的数据一致 

跟主从复制功能相关的文件:

master.info    :用于保存slave连接至master时的相关信息,例如账号 密码等
relay-log.info    :保存在当前slave节点上已经复制的二进制日志和本地relay log日志的对应关系
mysql-relay-bin.00000#    :中继日志,保存从主节点复制过来的二进制日志,本质就是二进制日志

MySQL主从同步的优点:

1、高可用性    主从同步可以保证在主服务器故障的情况下,从服务器可以立即接管,从而保证数据的完整性和可用性
2、数据备份    主服务器的数据可以被复制到多个从服务器上,从而实现数据备份
3、负载均衡    可以通过添加从服务器来分担主服务器的负载,从而提高性能

实现主从复制步骤:

前提准备:安装2台mysql作为主机和从机,可以用复制虚拟机
主机
	1、修改ip	如果新建虚拟机可以不用改
	vim /etc/sysconfig/network-scripts/ifcfg-ens32
	修改与复制的虚拟机IP不同
	2、修改配置文件
	vim /etc/my.cnf
	在mysqld 下添加以下四行
	server-id=1		主从要设置不一样
	log-bin=mysql-bin-master		启用二进制日志
	binlog-do-db=HA		可以被从服务器复制的库,二进制需要同步的数据库名
	binlog-ignore-db=mysql	不可以被从服务器复制的库
	3、修改uuid		如果新建虚拟机此步骤可以不做
	vim /usr/local/mysql/data/auto.cnf
	讲uuid修改一位即可
	4、重启MySQL服务
	systemctl restart mysql
	5、登录mysql并创建用户和赋予权限
	mysql -uroot -p1
	以下两行是MySQL8的语法
	create user slave@'%' identfied with mysql_native_password by '1';
	grant replication slave on *.* to slave@'%';
	flush privileges;		刷新权限
	6、创建从服务器可以复制的数据库
	create database HA;
	7、查看主机的状态
	show master status;
从机:
	1、修改IP
	2、修改配置文件
	vim /etc/my.cnf
	在mysqld下添加一行即可
	server-id=2	与上述主机不一致
	3、修改uuid
	vim /usr/local/mysql/data/auto.cnf
	修改与主机不一致即可
	4、重启服务
	systemctl restart mysql
	5、登录mysql
	mysq -uroot -p1
	6、先停止同步
	stop slave;
	7、建立与主机连接
	change master to master_host='主机ip',master_port=3306,master_user='主机创建的用户',master_password='用户的密码',master_log_file='主机最后查看出来的',master_log_pos=主机最后查看出来的;
	8、开始同步
	start slave;
	9、查看同步情况
	show slave status \G;
	10、在主机进行测试
	use HA;		使用可以复制的数据库
	create table test(id int, name varchar(20));		创建一个表查看从机是否有
	11、在从机查看
	use HA;
	show tables;
	查看是否有主机创建的test表

总结

主从同步是一种MySQL高可用性解决方案,通过同步主服务器与多个从服务器之间的数据,保证了数据的完整性和可用性,当主服务器发生故障时,从服务器可以立即接管,保证了数据的可用性,可以帮助用户实现数据备份和负载均衡,在使用时需要注意一些细节问题,以确保器正常运行。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值