听说Mysql你很豪横?————-MySQL5.7主从同步

文章目录一、主从复制原因与解决1、原因2、解决办法3、更高级的解决方案4、MySQL主从复制的类型5、主从复制的工作过程二、主从复制实验实操1、环境2、实验过程(1)手动编译安装mysql5.7版本(2)配置mysql主服务器(3)登陆mysql服务,授权所有从服务器复制二进制日志的权限(4)配置两台从服务器3、实验验证

生产环境中,服务器不可能只有一台,而多台服务器的存在必然要用到主从复制同步。

一、主从复制原因与解决
1、原因

在企业网站中,后端MySQL数据库只有一台时,会有以下问题:
遇到单点故障,服务不可用
无法处理大量的并发数据请求
数据丢失将会造成很大损失
听说Mysql你很豪横?-------------MySQL5.7主从同步

2、解决办法

增加MySQL数据库服务器,对数据进行备份,形成主备
确保主备MySQL数据库服务器数据是一样的
主服务器宕机了,备份服务器继续工作,数据有保障
MySQL主从复制与读写分离是密切相关的
听说Mysql你很豪横?-------------MySQL5.7主从同步

3、更高级的解决方案

通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力

Amoeba:是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy,外号变形虫

读取请求发送给从服务器时,采用轮询调度算法

主服务器挂掉,我们会采用MHA解决(此实验用不到)

此实验涉及到的账号权限

主从同步账号
节点服务器开放调度账号
Amoeba代理账号

听说Mysql你很豪横?-------------MySQL5.7主从同步

4、MySQL主从复制的类型

基于语句的复制(默认)
在主服务器上执行的语句,从服务器执行同样的语句
基于行的复制
把改变的内容复制到从服务器
混合类型的复制
一旦发现基于语句无法精确复制时,就会采用基于行的复制

5、主从复制的工作过程

当你更新数据库数据的时候 ,首先 将日志文件写入二进制日志文件,然后通过io线程,将binarylog日志文件同步到中继日志,然后sql线程读取中继线程 将数据复制到从服务器这里来
需要注意的点 权限,要让slave服务器有权限复制 ,不能让所有人都可以复制,所以需要创建一个账号来解决。
听说Mysql你很豪横?-------------MySQL5.7主从同步

听说Mysql你很豪横?-------------MySQL5.7主从同步

二、主从复制实验实操
1、环境

三台centos7服务器 同一安装mysql5.7版本的
一台做master
两台做slave
主 :192.168.110.134 server-id 10
从 :192.168.110.135 server-id 30
从 :192.168.110.136 server-id 20

2、实验过程
(1)手动编译安装mysql5.7版本

具体编译可参展小编之前的博客

(2)配置mysql主服务器

修改/etc/my.cnf配置文件,增加服务器id,配置二进制日志选项

[root@master ~]# vim /etc/my.cnf
...省略内容
'//mysqld字段下面修改'
server-id = 10 '//修改为10'
log-bin=master-bin '//设置二进制日志名'
log-slave-updates=true '//从服务器更新二进制日志'
[root@master ~]# systemctl restart mysqld.service '//重启mysql服务'

(3)登陆mysql服务,授权所有从服务器复制二进制日志的权限

[root@master ~]# mysql -u root -p
Enter password:
'//192.168.110.0段的从服务器拥有复制权限,可以使用myslave身份123456密码复制所有的库和表'
GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.110.%' IDENTIFIED BY 'Abc123';
mysql> flush privileges; '//刷新'
Query OK, 0 rows affected (0.00 sec)

mysql> show master status; '//查看位置id'
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 | 603 | | | |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

(4)配置两台从服务器

修改/etc/my.cnf配置文件,增加服务器id,配置二进制日志选项

[root@slave1 ~]# vim /etc/my.cnf
...省略内容
'//mysqld字段下面修改'
server-id = 20 '//修改为20,另一台从服务器的id设为30,三个id不可相同'
relay-log=relay-log-bin '//设置二进制日志名'
relay-log-index=slave-relay-bin.index '//从服务器更新二进制日志'
[root@master ~]# systemctl restart mysqld.service '//重启mysql服务'

登陆mysql服务,配置组从同步

[root@slave1 ~]# mysql -uroot -p
Enter password:
mysql> change master to master_host='192.168.110.134',master_user='myslave',master_password='123456',master_log_file='master-bin.000001',master_log_pos=603;

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G;
...省略内容
Slave_IO_Running: Yes '//发现IO是正常的'
Slave_SQL_Running: Yes '//SQL是正常的'
...省略内容

这里克隆的虚拟机有坑,具体解决方案可查看我排障集锦

3、实验验证

[root@master ~]# mysql -uroot -p
Enter password:
mysql> create database schoo;
Query OK, 1 row affected (0.00 sec)

两台从服务器查看是否同步
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| school | ‘//成功同步’
| mysql |
| performance_schema |
| sys |
±-------------------+
5 rows in set (0.00 sec)

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

听说Mysql你很豪横?-------------MySQL5.7主从同步

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 听说Mysql你很豪横?————-MySQL5.7主从同步
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏