设为首页 收藏本站
查看: 773|回复: 0

[经验分享] lvs DR模式 和mysql 读写分离的搭配

[复制链接]

尚未签到

发表于 2019-1-4 07:35:21 | 显示全部楼层 |阅读模式
  需求:
  在mysql abb 复制的基础上,实现apache对数据库的读写分离,写给maseter,读通过LVS 给倆台slave
  实验环境:
客户端192.168.11.20
路由器一台机子两个网卡192.168.11.1和192.168.18.1
Apache 192.168.18.241
  mysql 的master 192.168.18.81
  分发器一台机子  192.168.18.250  vip:192.168.18.253
Mysql-b1 一台机子 192.168.18.161   vip:192.168.18.253
Mysql-b2 一台机子 192.168.18.201    vip:192.168.18.253

  详细:
  一、客户端,
  配置好ip,192.168.11.20,并将网关指向192.168.11.1
  二、route,
  两个网卡分别为192.168.11.1和 192.168.18.1
  echo 1 > /proc/sys/net/ipv4/ip_forward
  三、配置mysql a-b-b
  (1)在3台mysql上
  yum install  mysql mysql-server
  (2)根据以前的mysql主辅ab配置好mysql的a-b-b模式
  master:
  vim /etc/my.cnf
  [mysqld]
  server_id = 1
  log-bin=binlog
  log-bin-index=binlog.index
  slave:
  vim /etc/my.cnf
  [mysqld]
  server_id = 2
  relay_log = /var/lib/mysql/mysql-relay-bin
  relay_log_index=/var/lib/mysql/mysql-relay-bin.index
  master && slave
  service mysqld restart
  master:
  mysql> GRANT replication slave ON *.* TO 'kyo'@'%' identified by '123';
  Query OK, 0 rows affected (0.05 sec)
  mysql> flush privileges;
  Query OK, 0 rows affected (0.00 sec)
  #################################################
  slave:
  cd /var/lib/mysql
  rm -fr *
  service mysqld restart
  master
  mysqldump -A -x > /tmp/full.sql
  scp /tmp/full.sql root@salveip:/tmp/
  slave:
  mysql < /tmp/full.sql
  master:
  mysql> flush tables with read lock;
  mysql> show master status;
  +---------------+----------+--------------+------------------+
  | File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
  +---------------+----------+--------------+------------------+
  | binlog.000003 |      1780 |              |                  |
  mysql>unlock tables;
  slave:
  mysql> change master to master_host='192.168.18.125', master_port=3306, master_user='kyo', master_password='123', master_log_file='binlog.000003',master_log_pos=295;
  mysql> start slave;
  slave:
  mysql> show slave status \G
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
  slave2 上的配置可以同slave1
  如果要求在配置slave2的时候不允许master 停服务或者锁表,那么请参阅http://zhangshujian.blog.运维网.com/5670152/1076801
  四、根据dr模式配置分发器和myb1、myb2
  (1)配置分发器
  a、ip地址:ifconfig eth0 192.168.18.250
  b、绑定ip地址:ifconfig eth0:0 192.168.18.253/32 broadcast 192.168.18.253 up
  c、指定主机路由:route add –host 192.168.18.253 dev eth0:0
  d、设定分发规则:
  rpm –ivh ipvsadm-1.24-10.i386.rpm
  设置分发规则:ipvsadm –A –t 192.168.18.253:3306 –s rr
  Ipvsadm –a –t 192.168.18.253:3306 –r 192.168.18.161 -g
  Ipvsadm –a –t 192.168.18.253:3306 –r 192.168.18.201 -g
  查看: ipvsadm –ln
  250ffmysql#ipvsadm -ln
I   P Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
   TCP  192.168.18.253:3306 rr
    -> 192.168.18.201:3306          Route   1      0          0         
    -> 192.168.18.161:3306          Route   1      0          0
  (2)配置slave1
  a、绑定vip:ifconfig lo:0 192.168.18.253/32 broadcast 192.16818.253 up
  b、设置主机路由:route add –host 192.168.18.253 dev lo:0
  c、设置默认路由:route add default gw 192.168.18.1
  d、保证路由在arp
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  e、重启下mysql服务
  (3)配置slave2同上slave1
  五、实现读写分离,写的时候指向mysql master192.168.18.81,读的时候指向分发器192.168.18.253
  (1)使用mysql-w-r.tar.gz
  解压文件:tar fvxz mysql-w-r.tar.gz,并将解压的文件拷贝靠/var/www/html下
  (2)修改文件的ip地址和用户以实现读写分离
  a、新建一个mysql帐号使其分别有写权限、读权限。
  GRANT all privileges ON *.* TO 'aa'@'%' identified by '123';
  GRANT all privileges ON *.* TO 'aa'@'%' identified by '123';
  flush privileges;
  b、修改mysql-c.php
  $con = mysql_connect(&quot;192.168.18.81&quot;,&quot;aa&quot;,&quot;123&quot;);
  修改insert.php
  $con = mysql_connect(&quot;192.168.18.81&quot;,&quot;aa&quot;,&quot;123&quot;);
  修改mysql-r.php
  $con = mysql_connect(&quot;192.168.18.253&quot;,&quot;aa&quot;,&quot;123&quot;);
  测试:
  Lost connection to MySQL server at 'reading initial communication packet' system erro 113

  最后确定是分发器的防火墙没有关闭




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-659117-1-1.html 上篇帖子: lvs快速安装 下篇帖子: linux学习一天一个命令(18)[lvs,vgs,pvs命令]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表