开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Linux下MySQL+Keepalived高可用性配置

简介:
+关注继续查看

前言*在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安装,如下:


  1. yum install –y  mysql mysql-devel mysql-server mysql-libs 

安装完后,配置MySQL配置文件,mysql采用主主模式:

1)   192.9.117.140的配置文件如下:vi /etc/my.cnf


  1. [mysqld]  
  2.  
  3. datadir=/data/mysql  
  4.  
  5. socket=/var/lib/mysql/mysql.sock  
  6.  
  7. user=mysql 
  8.  
  9. # Disabling symbolic-links is recommended to prevent assorted security risks  
  10.  
  11. symbolic-links=0 
  12.  
  13. log-bin=mysql-bin  
  14.  
  15. server-id = 1 
  16. auto_increment_offset=1   
  17.  
  18. auto_increment_increment=2
  19.  
  20. [mysqld_safe]  
  21.  
  22. log-error=/var/log/mysqld.log  
  23.  
  24. pid-file=/var/run/mysqld/mysqld.pid  
  25.  
  26. master-host =192.9.117.141  
  27.  
  28. master-user=tongbu 
  29.  
  30. master-pass=123456 
  31.  
  32. master-port =3306 
  33.  
  34. master-connect-retry=60 
  35.  
  36. replicate-do-db =map 

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


  1. [mysqld]  
  2.  
  3. datadir=/data/mysql  
  4.  
  5. socket=/var/lib/mysql/mysql.sock  
  6.  
  7. user=mysql 
  8.  
  9. # Disabling symbolic-links is recommended to prevent assorted security risks  
  10.  
  11. symbolic-links=0 
  12.  
  13. log-bin=mysql-bin  
  14.  
  15. 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数据库服务器里面设置权限,分别执行如下命令:


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

然后在141执行:


  1. show master status;  
  2.  
  3. +------------------+----------+--------------+------------------+  
  4.  
  5. | File  
  6. |Position | Binlog_Do_DB | Binlog_Ignore_DB |  
  7.  
  8. +------------------+----------+--------------+------------------+  
  9.  
  10. | mysql-bin.000002 |  
  11.  
  12. 106 |  
  13. |  
  14. |  
  15.  
  16. +------------------+----------+--------------+------------------+  
  17.  
  18. 1 row in set (0.00 sec)

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


  1. 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;  
  2.  
  3. 然后启动start slave;
  4. 注意这里写的bin-log参数是在141查看到的,即是对方的参数。

3)   然后在140执行:


  1. show master status;  
  2.  
  3. +------------------+----------+--------------+------------------+  
  4.  
  5. | File  
  6. |Position | Binlog_Do_DB | Binlog_Ignore_DB |  
  7.  
  8. +------------------+----------+--------------+------------------+  
  9.  
  10. | mysql-bin.000003 |  
  11.  
  12. 445|  
  13. |  
  14. |  
  15.  
  16. +------------------+----------+--------------+------------------+  
  17.  
  18. 1 row in set (0.00 sec)  
  19.  

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


  1. 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;   
  2. 然后启动start slave;

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

四、安装Keepalived:


  1. tar zxf keepalived-1.2.1.tar.gz  
  2.  
  3. cd keepalived-1.2.1 &&./configure --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-i686 &&make && make install  
  4.  
  5. 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/  
  6.  
  7.    if  
  8.  
  9.     [ $? -eq 0 ];then  
  10.  
  11.     echo "Keepalived system server config success!"  
  12.  
  13.     else  
  14.     echo "Keepalived system server config failed ,please check keepalived!"  
  15.     exit 0     
  16.      
  17.    fi

五、配置keepalived:

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


  1. ! Configuration File for keepalived  
  2.  
  3. global_defs {  
  4.  
  5.    notification_email {  
  6.  
  7.       wgkgood@139.com  
  8.  
  9.    }  
  10.    notification_email_from wgkgood@139.com  
  11.  
  12.    smtp_server 127.0.0.1  
  13.  
  14.    smtp_connect_timeout 30  
  15.  
  16.    router_id LVS_DEVEL  
  17. }  
  18. # VIP1  
  19.  
  20. vrrp_instance VI_1 {  
  21.  
  22.     state BACKUP    
  23.  
  24.     interface eth0  
  25.  
  26.     lvs_sync_daemon_inteface eth0  
  27.  
  28.     virtual_router_id 151  
  29.  
  30.     priority 90  
  31.  
  32.     advert_int 5  
  33.  
  34.     nopreempt  
  35.  
  36.     authentication {  
  37.  
  38.         auth_type PASS  
  39.  
  40.         auth_pass 2222  
  41.  
  42.     }  
  43.     virtual_ipaddress {  
  44.  
  45.         192.9.117.142  
  46.     }  
  47. }  
  48.  
  49. virtual_server 192.9.117.142 3306 {  
  50.  
  51.     delay_loop 6     
  52.  
  53.     lb_algo wrr     
  54.  
  55.     lb_kind DR    
  56.  
  57.     persistence_timeout 60     
  58.  
  59.     protocol TCP          
  60.  
  61.     real_server 192.9.117.140 3306 {  
  62.  
  63.         weight 100         
  64.  
  65.         notify_down /data/sh/mysql.sh  
  66.  
  67.         TCP_CHECK {  
  68.  
  69.         connect_timeout 10  
  70.  
  71.         nb_get_retry 3  
  72.  
  73.         delay_before_retry 3  
  74.  
  75.         connect_port 3306  
  76.  
  77.         }  
  78.     }  
  79. }

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


  1. 修改为Realserver192.9.117.141,并且设置优先级为90,都是BACKUP模式,并且nopreempt不抢占即可。  
  2.  
  3. 配置完后启动keepalived测试,可以先停止一台mysql,然后查看本地的keepalived是否停止,并且另外一台keepalived 已经变成了MASTER,如果是那就测试成功。  
  4.  
  5. 如上需要设置检查脚本/data/sh/mysql.sh,脚本内容为:  
  6.  
  7. pkill keepalived
  8. 下图为keepalived.conf部分配置

 

本文参考:Luwenju  Mysql Keepalived 高可用配置,my.cnf还可以优化一下参数。更多精彩内容后期分享!

http://bbs.linuxtone.org/thread-8172-1-1.html

本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/948116


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux 利用 date 命令进行时间戳转换
Linux 利用 date 命令进行时间戳转换
9 0
Linux组的介绍:1.文件/目录 所有者相关命令+2.组的创建+3.权限的基本介绍
Linux组的介绍:1.文件/目录 所有者相关命令+2.组的创建+3.权限的基本介绍
7 0
linux:2.3.4 查找/搜索命令(find+grep)+压缩/解压缩命令(gzipbzip2+tar+mv+mkdir)
linux:2.3.4 查找/搜索命令(find+grep)+压缩/解压缩命令(gzipbzip2+tar+mv+mkdir)
9 0
linux第四课:改变文件的权限和属性(内含:1.修改权限命令chmod+2.临时切换用户用 sudo+3.chowm:改变文件所有者)
linux第四课:改变文件的权限和属性(内含:1.修改权限命令chmod+2.临时切换用户用 sudo+3.chowm:改变文件所有者)
9 0
linux第三课:目录文档操作命令(内含绝对/相对路径+1.pwd+2.cd+3.mkdir(创建目录)+4. rmdir(删除目录)+5. ls+6. cp+7.rm+8cat+9touch命令)
linux第三课:目录文档操作命令(内含绝对/相对路径+1.pwd+2.cd+3.mkdir(创建目录)+4. rmdir(删除目录)+5. ls+6. cp+7.rm+8cat+9touch命令)
7 0
hadoop安装使用的命令+linux基本操作命令+HDFS常用命令
一、Hadoop基本安装主要包括以下6个步骤: 1.创建Hadoop用户。 2.更新apt和安装Vim编辑器。 3.安装SSH和配置SSH无密码登录。 4.安装Java环境。 5.安装单机Hadoop。 6.HDFS:启动
9 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
MySQL MGR 8.0高可用实战
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云原生的 MySQL 托管服务架构及读写分离的优化(PHP)
立即下载