部署mysql主从同步
一、什么是mysql主从同步
主:正在被客户端访问的数据库服务器,被称作主库服务器。
从:自动同步主库上的数据的数据库服务器,被称作从库服务器。

二、配置mysql主从同步
2.1 拓扑图
数据库服务器 192.168.4.51 做主库
数据库服务器 192.168.4.52 做从库

2.2 环境准备
主从同步未配置之前,要保证从库上要有主库上的数据。
禁用selinux ]# setenforce 0
关闭防火墙服务]# systemctl stop firewalld
物理连接正常 ]# ping -c 2 192.168.4.51/52
数据库正常运行,管理可以从本机登录

2.3 配置mysql主从同步
+++2.3.1 配置主库
a 创建用户授权
b 启用binlog日志
c 查看正在使用binlog日志信息

+++.3.2 配置从库
a 验证主库的用户授权
b 指定server_id
c 数据库管理员本机登录,指定主数据库服务器的信息
mysql> change master to
-> master_host="主库ip地址",
-> master_user="主库授权用户名",
-> master_password="授权用户密码",
-> master_log_file="主库binlog日志文件名",
-> master_log_pos=binlog日志文件偏移量;
d 启动slave进程
e 查看进程状态信息

相关命令
mysql> show slave status; # 显示从库状态信息
mysql> show master status; #显示本机的binlog日志文件信息
mysql> show processlist; #查看当前数据库服务器上正在执行的程序
mysql> start slave ; #启动slave 进程
mysql> stop slave ; #停止slave 进程

2.4 在客户端测试主从同步配置
2.4.1 在主库服务器上添加访问数据时,使用连接用户
2.4.2 客户端使用主库的授权用户,连接主库服务器,建库表插入记录
2.4.3 在从库本机,使用管理登录查看是否有和主库一样库表记录及授权用户

2.4.4 客户端使用主库的授权用户,连接从库服务器,也可以看到新建的库表及记录
+++++++++++++++++++++++++++++++
三、mysql主从同步的工作原理
从库数据库目录下的文件:
master.info 记录主库信息
主机名-relay-bin.XXXXXX 中继日志文件,记录主库上执行过的sql命令
主机名-relay-bin.index 索引文件,记录当前已有的中继日志文件
relay-log.info 中继日志文件,记录当前使用的中继日志信息

从库IO线程 和SQL线程的作用?
IO线程 把主库binlog日志里的sql命令记录到本机的中继日志文件
SQL线程 执行本机中继日志文件里的sql命令,把数据写进本机。

IO线程报错原因: 从库连接主库失败(ping grant firewalld selinux)
从库指定主库的日志信息错误(日志名 偏移量)

Last_IO_Error: 报错信息

修改步骤:
mysql> stop slave;
mysql> change master to 选项="值";
mysql> start slave;

SQL线程报错原因: 执行本机中继日志文件里的sql命令,用到库或表在本机不存在。
Last_SQL_Error: 报错信息

设置从库暂时不同步主库的数据?
在从库上把slave 进程停止
mysql> stop slave;

把从库恢复成独立的数据库服务器?
]# rm -rf /var/lib/mysql/master.info
]# systemctl restart mysqld
]# rm -rf 主机名-relay-bin.XXXXXX 主机名-relay-bin.index relay-log.info

四、mysql主从同步结构模式
一主一从
一主多从

主从从
主主结构(又称作互为主从)

五、mysql主从同步常用配置参数
主库服务器在配置文件my.cnf 使用的参数
]#vim /etc/my.cnf
[mysqld]
binlog_do_db=库名列表 #只允许同步库Binlog_Ignore_DB=库名列表 #只不允许同步库
]# systemctl restart mysqld

从库服务器在配置文件my.cnf 使用的参数
]# vim /etc/my.cnf
[mysqld]
log_slave_updates
#级联复制
relay_log=中继日志文件名
replicate_do_db=库名列表 #只同步的库
replicate_ignore_db=库名列表 #只不同步的库
:wq
]# systemctl restart mysqld

配置mysql主从从结构
主库 192.168.4.51
从库 192.168.4.52 ( 做51主机从库)
从库 192.168.4.53 ( 做53主机从库)
要求:客户端访问主库51 时 创建库表记录 在52 和53 数据库服务器都可以看到

配置步骤:
一、环境准备
主从同步未配置之前,要保证从库上要有主库上的数据。
禁用selinux ]# setenforce 0
关闭防火墙服务]# systemctl stop firewalld
物理连接正常 ]# ping -c 2 192.168.4.51/52
数据库正常运行,管理可以从本机登录
二、配置主从同步
2.1 配置主库51
用户授权
启用binlog日志
查看正在使用的日志信息

2.2 配置从库52
用户授权
启用binlog日志,指定server_id 和 允许级联复制
查看正在使用的日志信息
验证主库的授权用户
管理员登录指定主库信息
启动slave进程
查看进程状态信息

2.3 配置从库53
验证主库的授权用户
指定server_id
管理员登录指定主库信息
启动slave进程
查看进程状态信息

三、客户端验证配置
3.1 在主库上授权访问gamedb库的用户
3.2 客户端使用授权用户连接主库,建库、表、插入记录
3.3 客户端使用授权用户连接2台从库时,也可以看到主库上新的库表记录

六、mysql主从同步复制模式
异步复制
全同步复制
半同步复制

查看是否可以动态加载模块
mysql> show variables like "have_dynamic_loading";

主库安装的模块
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

从库安装的模块
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

查看系统库下的表,模块是否安装成功
mysql>
SELECT PLUGIN_NAME , PLUGIN_STATUS
FROM INFORMATION_SCHEMA.PLUGINS
WHERE
PLUGIN_NAME LIKE '%semi%';

启用半同步复制模式
主库
mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;

从库
mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;

查看半同步复制模式是否启用
mysql> show variables like "rpl_semisync%_enabled";

修改配置文件/etc/my.cnf 让安装模块和启用的模式永久生效。

主库
vim /etc/my.cnf
[mysqld]
plugin-load=rpl_semi_sync_master=semisync_master.so
rpl_semi_sync_master_enabled=1
:wq

从库
vim /etc/my.cnf
[mysqld]
plugin-load=rpl_semi_sync_slave=semisync_slave.so
rpl_semi_sync_slave_enabled=1
:wq

既做主又做从
vim /etc/my.cnf
[mysqld]
plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl-semi-sync-master-enabled = 1
rpl-semi-sync-slave-enabled = 1
:wq

转载于:https://blog.51cto.com/13740508/2122723

部署mysql主从同步相关推荐

  1. mysql主从同步linux,linux中部署mysql主从同步示例详解(绝对经典,看了必会)

    准备两台服务器并安装MySQL5.7 master服务器 192.168.254.132 slave服务器 192.168.254.136 确保两台服务器安装的mysql版本一致,本测试使用的是mys ...

  2. mysql双机部署_双机部署Mysql主从同步

    提前准备两台机器(200M+内存),假定为A.B  ●要求:在A,B上分别安装部署mysql双实例,端口为3306,3307.  ●要求:       完成3306端口A--->B的mysql主 ...

  3. MySQL主从同步(一主一从、一主多从、主从从)等结构的概述与配置

    前言:前面我们了解了MySQL数据库的基础知识,今天及接下来的五天时间里我会给大家带来MySQL进阶方面的一些学习总结,如有不足,还请大家留言指出:下面我们就开始今天的内容. ** 部署mysql主从 ...

  4. DBA(三):MySQL主从同步、复制模式

    MySQL主从同步 主从同步概述 MySQL主从同步 主从同步介绍 实现数据自动同步的服务结构 主服务器:接受客户端访问连接 从服务器:自动同步主服务器的数据 主从同步的工作原理 主库有1个线程叫du ...

  5. mysql主从同步配置超详细_MySQL主从同步配置

    一. 理论部分 MySQL主从同步 主从同步使得数据可以从一个数据库服务器复制到其他的服务器上.在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave). 因为复制 ...

  6. 【纯干货】Amoeba实现MySQL主从同步与读写分离

    [纯干货]Amoeba实现MySQL主从同步与读写分离 一.简介 amoeba简介 Amoeba(变形虫)项目,该开源框架于2008年开始发布一款 Amoeba for Mysql软件.这个软件致力于 ...

  7. mysql 主从同步-读写分离

    主从同步与读写分离测试 一.  实验环境(主从同步) Master                   centos 7.3              192.168.138.13 Slave     ...

  8. mysql主从同步原理_mysql主从同步以及原理

    mysql主从复制介绍 当前的生产工作中,大多数应用的mysql主从同步都是异步的复制方式,即不是严格实时的数据同步. 实时和异步: 同步复制: 指的是客户端连接到MySQL主服务器写入一段数据,My ...

  9. 1 MySQL 主从同步

    什么是 MySQL 主从同步 当 master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库. 主从同步有什么好处 1.水平扩展数据库的负载能力 2.容错,高可用.Failover ...

最新文章

  1. 在vs2005中使用Jmail发送邮件问题
  2. MySQL中文全文索引
  3. 白话Elasticsearch61-进阶篇之基于Term Vectors深入探查数据的情况
  4. 003.XE3包含了TPerlRegEx的单元
  5. 【HTML】前端性能优化之CDN和WPO的比较
  6. mysql触发器可以使用正则表达式,是否可以使用正则表达式在MySQL中强制执行数据检查...
  7. GitHub 标星 5.7w,如何用 Python 实现所有算法?
  8. 计算机的智能化研究领域的是,科学网—第五代计算机为何在“智能化”阶段的发展像蜗牛般的徘徊前行? - 邹晓辉的博文...
  9. HDUOJ3549 - Flow Problem(网络流+最大流最小割+模板)
  10. linux常用文件操作命令
  11. JMS 开发步骤、持久化 topic 消息与非持久化 topic 消息
  12. 小猿圈之测试用例的八大要素
  13. Linux间共享文件夹
  14. 怎么样可以对腾讯云IM-SDK集成(web端)完成IM登录
  15. icesword介绍
  16. matlab判断系统因果性,如何分析判断系统是否为稳定系统、因果系统、线性系统?...
  17. python :turtle画笔设置函数
  18. 【人工智能数学基础(三)】数学优化
  19. 《魔灵保卫者》服务端架构及实现
  20. Qt之流式布局(FlowLayout)

热门文章

  1. 高性能服务器程序框架,高性能服务器程序框架
  2. php医院数据库设计,检查我的数据库设计/ PHP / MySQL
  3. pdo mysql fedora_fedora编译安装php5.5
  4. 零起点英语_【零起点英语】第100讲:The Cost of War 战争的代价
  5. mac笔记本安装tree工具显示文件目录结构
  6. java注解 自定义策略传参_Java注解教程及自定义注解
  7. windows7安装com口驱动_windows7系统u盘插电脑没有反应的解决方法
  8. Java中对查出的数据计数_基础算法7:从数据库某个字段中取出现次数最多的几条数据形成“热门xxx”...
  9. java 并发变量_二、Java多线程编程 (对象及变量的并发访问)
  10. 多输出模型实例的数据加载