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

[经验分享] Linux下MySQL+Keepalived高可用性配置

[复制链接]

尚未签到

发表于 2018-12-28 13:23:22 | 显示全部楼层 |阅读模式
  前言*在mysql高可用配置中,我们会看到有很多的方法,每种方法都有各自优缺点,那今天我们来看参看一下Mysql+Keepalived高可用配置。
  一、安装环境:
  系统版本:CentOS6.0 x86_64
  Mysql版本:mysql-5.1.61
  Mysqlserver_1: 192.9.117.140
  Mysqlserver_2: 192.9.117.141
  Keepalived-VIP:192.9.117.142
  二、正式安装:
  在两台服务器上分别安装mysql,这里直接采用yum安装,如下:


  • yum install –y  mysql mysql-devel mysql-server mysql-libs

  安装完后,配置MySQL配置文件,mysql采用主主模式:
  1)   192.9.117.140的配置文件如下:vi /etc/my.cnf


  • [mysqld]  

  • datadir=/data/mysql  

  • socket=/var/lib/mysql/mysql.sock  

  • user=mysql

  • # Disabling symbolic-links is recommended to prevent assorted security risks  

  • symbolic-links=0

  • log-bin=mysql-bin  

  • server-id = 1
  • auto_increment_offset=1   

  • auto_increment_increment=2

  • [mysqld_safe]  

  • log-error=/var/log/mysqld.log  

  • pid-file=/var/run/mysqld/mysqld.pid  

  • master-host =192.9.117.141  

  • master-user=tongbu

  • master-pass=123456

  • master-port =3306

  • master-connect-retry=60

  • replicate-do-db =map

  2)   192.9.117.141的配置文件如下:vi /etc/my.cnf


  • [mysqld]  

  • datadir=/data/mysql  

  • socket=/var/lib/mysql/mysql.sock  

  • user=mysql

  • # Disabling symbolic-links is recommended to prevent assorted security risks  

  • symbolic-links=0

  • log-bin=mysql-bin  

  • server-id = 2

    • auto_increment_offset=2

    • auto_increment_increment=2


  • [mysqld_safe]  

  • log-error=/var/log/mysqld.log  

  • pid-file=/var/run/mysqld/mysqld.pid  

  • master-host =192.9.117.140  

  • master-user=tongbu

  • master-pass=123456

  • master-port =3306

  • master-connect-retry=60

  • replicate-do-db =map

  • 如上设置bin-log文件,并都设置对方为自己的主服务器,配置同步的数据库为map

  三、配置MySQL:
  1)   在两台mysql数据库服务器里面设置权限,分别执行如下命令:


  • grant  replication  slave  on *.* to  'tongbu'@'%'  identified by  '123456';

  然后在141执行:


  • show master status;  

  • +------------------+----------+--------------+------------------+  

  • | File  
  • |Position | Binlog_Do_DB | Binlog_Ignore_DB |  

  • +------------------+----------+--------------+------------------+  

  • | mysql-bin.000002 |  

  • 106 |  
  • |  
  • |  

  • +------------------+----------+--------------+------------------+  

  • 1 row in set (0.00 sec)

  2)   在192.9.117.140上将192.9.117.141设为自己的主服务器执行如下命令:


  • change master to master_host='192.9.117.141',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=106;  

  • 然后启动start slave;
  • 注意这里写的bin-log参数是在141查看到的,即是对方的参数。

  3)   然后在140执行:


  • show master status;  

  • +------------------+----------+--------------+------------------+  

  • | File  
  • |Position | Binlog_Do_DB | Binlog_Ignore_DB |  

  • +------------------+----------+--------------+------------------+  

  • | mysql-bin.000003 |  

  • 445|  
  • |  
  • |  

  • +------------------+----------+--------------+------------------+  

  • 1 row in set (0.00 sec)  


  4) 在192.9.117.141上将192.9.117.140设为自己的主服务器执行如下命令:


  • change master to master_host='192.9.117.140',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=445;   
  • 然后启动start slave;

  5)   MySQL同步测试配置完毕,我们会发现在任何一台mysql上更新同步的数据库里面的数据,都会同步到另一台mysql。
  四、安装Keepalived:


  • tar zxf keepalived-1.2.1.tar.gz  

  • cd keepalived-1.2.1 &&./configure --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-i686 &&make && make install  

  • DIR=/usr/local/ ;cp $DIR/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/ && cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir -p /etc/keepalived  && cp $DIR/sbin/keepalived /usr/sbin/  

  •    if  

  •     [ $? -eq 0 ];then  

  •     echo "Keepalived system server config success!"  

  •     else  
  •     echo "Keepalived system server config failed ,please check keepalived!"  
  •     exit 0     
  •      
  •    fi

  五、配置keepalived:
  1)   创建vi  keepalived.conf文件,内容如下:


  • ! Configuration File for keepalived  

  • global_defs {  

  •    notification_email {  

  •       wgkgood@139.com  

  •    }  
  •    notification_email_from wgkgood@139.com  

  •    smtp_server 127.0.0.1  

  •    smtp_connect_timeout 30  

  •    router_id LVS_DEVEL  
  • }  
  • # VIP1  

  • vrrp_instance VI_1 {  

  •     state BACKUP   

  •     interface eth0  

  •     lvs_sync_daemon_inteface eth0  

  •     virtual_router_id 151  

  •     priority 90  

  •     advert_int 5  

  •     nopreempt  

  •     authentication {  

  •         auth_type PASS  

  •         auth_pass 2222  

  •     }  
  •     virtual_ipaddress {  

  •         192.9.117.142  
  •     }  
  • }  

  • virtual_server 192.9.117.142 3306 {  

  •     delay_loop 6     

  •     lb_algo wrr     

  •     lb_kind DR   

  •     persistence_timeout 60     

  •     protocol TCP         

  •     real_server 192.9.117.140 3306 {  

  •         weight 100         

  •         notify_down /data/sh/mysql.sh  

  •         TCP_CHECK {  

  •         connect_timeout 10  

  •         nb_get_retry 3  

  •         delay_before_retry 3  

  •         connect_port 3306  

  •         }  
  •     }  
  • }

  2)   141 keepalived同样如上配置,注意keepalived配置文件里面只添加一台mysql服务器ip地址,代表只使用这一台读写。


  • 修改为Realserver192.9.117.141,并且设置优先级为90,都是BACKUP模式,并且nopreempt不抢占即可。  

  • 配置完后启动keepalived测试,可以先停止一台mysql,然后查看本地的keepalived是否停止,并且另外一台keepalived 已经变成了MASTER,如果是那就测试成功。  

  • 如上需要设置检查脚本/data/sh/mysql.sh,脚本内容为:  

  • pkill keepalived
  • 下图为keepalived.conf部分配置


  本文参考:Luwenju  Mysql Keepalived 高可用配置,my.cnf还可以优化一下参数。更多精彩内容后期分享!
  http://bbs.linuxtone.org/thread-8172-1-1.html




运维网声明 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-656911-1-1.html 上篇帖子: CentOS 7.0 安装keepalived-12163069 下篇帖子: lvs配合keepalived实现mysql高可用负载均衡及读写分离
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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