mysql5.7搭建主从库
#mysql单节点的mysql远远不能满于生成,以防止生产服务器宕机,磁盘空间溢满等种种原因,需要有一个备用数据库,
这时候主从库是不错的选择,在是数据库集群中也起到了很大的作用
#mysql 主从复制概念:
mysql 主从复制是指数据可以从一个mysql数据库服务器主节点复制到一个或多个从节点。mysql 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。
#一般主从架构
- 一主一从
一主一从和一主多从是最常见的主从架构,实施起来简单并且有效,不仅可以实现ha,而且还能读写分离,进而提升集群的并发能力。
- 多主一从
多主一从可以将多个mysql数据库备份到一台存储性能比较好的服务器上
-
双主复制
双主复制,也就是互做主从复制,每个master既是master,又是另外一台服务器的slave。这样任何一方所做的变更,都会通过复制应用到另外一方的数据库中
- 级联复制
级联复制模式下,部分slave的数据同步不连接主节点,而是连接从节点。因为如果主节点有太多的从节点,就会损耗一部分性能用于replication,那么我们可以让3~5个从节点连接主节点,其它从节点作为二级或者三级与从节点连接,这样不仅可以缓解主节点的压力,并且对数据一致性没有负面影响。
1.主从服务器要求
(1)版本一致
(2)初始化表,并在后台启动mysql
(3)可供mysql用户
2.主库配置
2.从库配置,从库不配置日志也是可以的,只配置server_id即可满足
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,就表明主从有问题了,发短信警报吧。
上一篇: 一些实用的Django+HTML设置
下一篇: Python with语句和过程抽取思想