MySQL主从复制的实现方法

  介绍

这篇文章给大家分享的是有关MySQL主从复制的实现方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, MySQL主从复制的实现方法

测试服务器使用centos7.2进行相关配置

文章内容参考MySQL数据库的主从同步,实现读写分离

概叙

大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层,数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器来处理如此多的数据库连接操作,数据库必然会崩溃,特别是数据丢失的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的连接,下面就进入我们今天的主题。

利用主从数据库来实现读写分离,从而分担主数据库的压力。在多个服务器上部署MySQL,将其中一台认为主数据库,而其他为从数据库,实现主从同步。其中主数据库负责主动写的操作,而从数据库则只负责主动读的操作(奴隶从数据库仍然会被动的进行写操作,为了保持数据一致性),这样就可以很大程度上的避免数据丢失的问题,同时也可减少数据库的连接,减轻主数据库的负载。

安装MySQL

服务器安装MySQL我参考了以下两篇文章

centos7.2安装Mysql5.7(阿里云)

Centos7远程无法连接MySQL数据库

在安装数据库过程中,由于远程无法连接踩了一些坑,首先在配置完成数据库后,需要数据库授权允许访问,然后打开防火墙设置,将3306端口打开,允许通过数据库管理工具通过端口访问数据库,我就是在没有设置打开防火墙这块一直踩坑。

在测试的两台服务器都分别安装了MySQL,并同时导入测试数据库

主从复制配置

主服务器配置

修改主服务器MySQL配置,文件位于

/etc/my . cnf中所做 #在(mysqld)中添加:   服务器id=1 log_bin=master-bin   log_bin_index=master-bin.index   binlog_do_db=主      #服务器id服务器唯一标识。   # log_bin启动MySQL二进制日志,即数据同步语句,从数据库会一条一条的执行这些语句。   # binlog_do_db指定记录二进制日志的数据库,即需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可。   # binlog_ignore_db指定不记录二进制日志的数据库,即不需要复制的数据库名,如果有多个数据库,重复设置这个选项即可。   #其中需要注意的是,binlog_do_db和binlog_ignore_db为互斥选项,一般只需要一个即可。

创建用户和权限

格兰特复制奴隶>创建完成后,通过命令重启mysql服务

服务mysql重启

通过命令显示主状态查看状态

 mysql主从复制的实现方法

奴隶从服务器的配置

同样修改位于目/etc/my . cnf中所做录下的配置

#在(mysqld)中添加:   服务器id=2 relay-log=slave-relay-bin   relay-log-index=slave-relay-bin.index   # replicate-do-db=主         #服务器id服务器唯一标识,如果有多个从服务器,每个服务器的服务器id不能重复,跟IP一样是唯一标识,如果你没设置服务器id或者设置为0,则从服务器不会连接到主服务器。   # relay-log启动MySQL二进制日志,可以用来做数据备份和崩溃恢复,或主服务器挂掉了,将此从服务器作为其他从服务器的主服务器。   # replicate-do-db指定同步的数据库,如果复制多个数据库,重复设置这个选项即可。若在主端不指定binlog-do-db,则在奴隶端可用replication-do-db来过滤。   # replicate-ignore-db不需要同步的数据库,如果有多个数据库,重复设置这个选项即可。   #其中需要注意的是,replicate-do-db和replicate-ignore-db为互斥选项,一般只需要一个即可。

通过命令重启mysql服务

服务mysql重启

连接主数据库

#连接主主服务器   mysql>修改主master_host=& # 39; 103.246.246.225& # 39;, master_port=3306, master_user=& # 39; masterbackup& # 39;, master_password=& # 39; 123456 & # 39; master_log_file=& # 39; master-bin.000001& # 39;, master_log_pos=120; # master_host对应主服务器的IP地址。   # master_port对应主服务器的端口。   # master_log_file对应显示主状态显示的文件列:master-bin.000001。   # master_log_pos对应显示主状态显示的职位列:120。

MySQL主从复制的实现方法