欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql5.7搭建主从库

程序员文章站 2023-09-29 08:29:55
#MYSQL单节点的mysql远远不能满于生成,以防止生产服务器宕机,磁盘空间溢满等种种原因,需要有一个备用数据库, 这时候主从库是不错的选择,在是数据库集群中也起到了很大的作用 #MySQL 主从复制概念: MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。 ......

#mysql单节点的mysql远远不能满于生成,以防止生产服务器宕机,磁盘空间溢满等种种原因,需要有一个备用数据库,

这时候主从库是不错的选择,在是数据库集群中也起到了很大的作用

#mysql 主从复制概念:

mysql 主从复制是指数据可以从一个mysql数据库服务器主节点复制到一个或多个从节点。mysql 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。

#一般主从架构

  • 一主一从

  一主一从和一主多从是最常见的主从架构,实施起来简单并且有效,不仅可以实现ha,而且还能读写分离,进而提升集群的并发能力。

  mysql5.7搭建主从库

  • 多主一从

  多主一从可以将多个mysql数据库备份到一台存储性能比较好的服务器上

  mysql5.7搭建主从库

  •  

    双主复制

    双主复制,也就是互做主从复制,每个master既是master,又是另外一台服务器的slave。这样任何一方所做的变更,都会通过复制应用到另外一方的数据库中

  • 级联复制

  mysql5.7搭建主从库

 

 

   级联复制模式下,部分slave的数据同步不连接主节点,而是连接从节点。因为如果主节点有太多的从节点,就会损耗一部分性能用于replication,那么我们可以让3~5个从节点连接主节点,其它从节点作为二级或者三级与从节点连接,这样不仅可以缓解主节点的压力,并且对数据一致性没有负面影响。

1.主从服务器要求

(1)版本一致

(2)初始化表,并在后台启动mysql

(3)可供mysql用户

 

2.主库配置

mysql5.7搭建主从库

 

2.从库配置,从库不配置日志也是可以的,只配置server_id即可满足

mysql5.7搭建主从库

 

3.查看主库的日志信息

mysql>show master status; +------------------+----------+--------------+------------------+ | file | position | binlog_do_db | binlog_ignore_db | +------------------+----------+--------------+------------------+ | mysql-bin.000004 | 308 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)

 

4.重启主从库,配置从库的slave

mysql>change master to master_host='192.168.145.222',master_user='mysync',master_password='q123456', master_log_file='mysql-bin.000004',master_log_pos=308; //注意不要断开,308数字前后无单引号。 mysql>start slave; //启动从服务器复制功能

 

5.查看从库复制功能状态

mysql> show slave status\g *************************** 1. row *************************** slave_io_state: waiting for master to send event master_host: 192.168.2.222 //主服务器地址 master_user: mysync //授权帐户名,尽量避免使用root master_port: 3306 //数据库端口,部分版本没有此行 connect_retry: 60 master_log_file: mysql-bin.000004 read_master_log_pos: 600 //#同步读取二进制日志的位置,大于等于exec_master_log_pos relay_log_file: ddte-relay-bin.000003 relay_log_pos: 251 relay_master_log_file: mysql-bin.000004 slave_io_running: yes //此状态必须yes slave_sql_running: yes //此状态必须yes

注:slave_io及slave_sql进程必须正常运行,即yes状态,否则都是错误的状态(如:其中一个no均属错误)。

 

6.进行验证,在主库建表,从库会同步数据过来,可编写shell脚本监控salve两个yes(slave_io及slave_sql进程),如发现只有一个或零个yes,就表明主从有问题了,发短信警报吧。

mysql5.7搭建主从库