Linux下MySQL+Keepalived高可用性配置

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

前言*在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
  16.  
  17. [mysqld_safe]  
  18.  
  19. log-error=/var/log/mysqld.log  
  20.  
  21. pid-file=/var/run/mysqld/mysqld.pid  
  22.  
  23. master-host =192.9.117.140  
  24.  
  25. master-user=tongbu 
  26.  
  27. master-pass=123456 
  28.  
  29. master-port =3306 
  30.  
  31. master-connect-retry=60 
  32.  
  33. replicate-do-db =map 
  34.  
  35. 如上设置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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
2月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
366 7
|
2月前
|
SQL 监控 关系型数据库
查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
320 11
|
6月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
495 17
|
6月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
153 18
|
6月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
447 11
|
监控 负载均衡 Linux
|
2月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
374 1
二、Linux文本处理与文件操作核心命令
|
2月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
279 137
|
2月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
625 57
|
1月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
322 2