一、实验坏境
1。一台CentOS 7作为客户端测试,对应的地址为:192.168.80.120
2。一台CentOS 7作为变形虫前端代理云服务器,对应的地址为:192.168.80.110
3。一台CentOS 7作为mysql主服务器,对应的地址为:192.168.80.100
4。两台CentOS 7分别作为mysql从服务器,对应的地址分别为:192.168.80.140,192.168.80.150
5。所有的虚拟机都绑定同一块虚拟网卡vnet1:192.168.80.10
二、主从复制和读写分离的原理
<强> 1,主从复制的原理强>
<代码> mysql的主从复制和读写分离两者有着紧密的联系,首先要部署主从复制,只有主从复制完成了才能在此基础上进行数据的读写分离。代码>
mysql支持的复制类型有:基于语句的复制,基于行的复制,混合类型的复制。
复制的工作过程如下:
<强> 2,读写分离的原理强>
<代码>简单来说,读写分离就是只在主服务器上写,只在从服务器上读。基本原理是让主数据库处理事务性查询,而从服务器处理选择查询。数据库复制被用来把事务性查询导致的变更同步到从数据库中。代码>
基于中间代理层实现:代理一般位于客户端和服务器之间,代理服务器接到客户段的请求通过判断后转发到后端数据库。
读写分离的过程如下:
三,搭建mysql主从复制
将三台CentOS 7分别用源码编译安装mysql数据库具体操作:https://blog.51cto.com/13871362/2328667
<强> 1,配置主服务器强>
1)建立时间同步环境
<代码> yum安装国家结核控制规划- y,,国家结核控制规划时,//安装间同步服务器 vi/etc/ntp.相依,,//编辑配置文件代码>
17行添加
<代码>限制192.168.80.0面具255.255.255.0 nomodify notrap,,,,//限定同步的网段 服务器127.127.1.0 软糖127.127.1.0 8层,,//设置时间服务器的层级为8级,顶级是0 代码>
<强> 2,配置从服务器(两台从步骤一样,区别服务器id不同)强>
1)配置从MySQL
<代码> vi/etc/my.cnf,,,//编辑数据库配置文件 在(mysqld)模块下面添加以下几行 server_id=22,,,//从服务器编的号 relay_log=relay-log-bin//指定从服务器的中继日志 relay_log_index=slave-relay-bin。指数,//定义中级日志的位置和名称代码>
<代码>回声& # 39;30 * * * * *//usr/sbin/ntpdate 192.168.80.183& # 39;在比;/var/spool/cron/root crontab - l,,,//创建计划任务每隔三十秒同步一次代码>
3)进入从数据库授权
<代码> mysql -uroot -pabc123,//进入数据库 修改主master_host=& # 39; 192.168.80.100& # 39;, master_user=& # 39; mysyslave& # 39;, master_password=& # 39; abc123 # 39;, master_log_file=& # 39; master_bin.000001& # 39; & # 39; master_log_pos=603;,,//指定主服务器 开始的奴隶;,,//开启从服务器 显示奴隶状态\ G代码MySQL主从复制,读写分离原理及如何部署