1 vim /etc/keepalived/check_MySQL.sh 2 #!.../bin/sh 3 #isok=$(sed -n '2p' /etc/keepalived/result.txt) 4 isok=$(/usr/local/mysql/bin/mysql -uroot...-p123456 -e 'select 1' |sed -n '2p') 5 function error_query(){ 6 service keepalived stop 7...echo "172.16.16.34 mysql down, keepalived 切换" | mail -s "34MySQL+keepalived通知" ma.xiangqian@sf-express.com
1 vim /etc/keepalived/check_MySQL.sh 2 #!.../bin/bash 3 MYSQL=/usr/bin/mysql 4 MYSQL_HOST=localhost 5 MYSQL_USER=root 6 CHECK_COUNT=5 7...counter=1 8 while true 9 do 10 mysql -h $MYSQL_HOST -u $MYSQL_USER -e "show status;" >...27 continue 28 fi 29 fi 30 done 31 /etc/init.d/keepalived
1 vim /etc/keepalived/check_MySQL.sh 2 #vim #!.../bin/bash 3 MYSQL=/usr/local/mysql/bin/mysql 4 MYSQL_HOST=localhost 5 MYSQL_USER=root 6 MYSQL_PASSWORD...= 7 CHECK_TIME=3 8 #mysql is working MYSQL_OK is 1 , mysql down MYSQL_OK is 0 9 MYSQL_OK=1 10...function check_mysql_helth (){ 11 $MYSQL -h $MYSQL_HOST -u $MYSQL_USER -e "show status;" >/dev/null.../etc/init.d/keepalived stop 30 exit 1 31 fi 32 sleep 1 33 done
1 vim /etc/keepalived/check_MySQL.sh 2 #!/bin/bash 3 pkill keepalived
我们可以用脚本来对keepalived进行操作: 先写vrrp_script { } 随后在如下配置段进行操作: ?...实战 (1)首先编写脚本文件: mkdir /data/scripts/ -p cd /data/scripts/ vim check_keepalived.sh 编辑脚本文件,当出现/tmp/scripts...文件时将权重减少30,同时在(3)和(4)keepalived主机上进行操作 ?...track_script里的内容的脚本一定要和vrrp_script 后跟的内容一致。 演示 此时在两台主机上开启服务: 查看信息: ? 成功启动,观察master: ?...发现成功,这样就实现了脚本化操作
!/bin/bash while true do Master=10.0.0.10 Backup=10.0.0.11 Vip=10.0.0.100 M...
#并且保证主从是同步的mysql> show slave status\G;Slave_IO_Running: YesSlave_SQL_Running: Yes SQL验证,分别在Master执行脚本需要在...(C) 2001-2017 Alexandre Cassen, 配置KeepAlived 配置Master机器keepalived 新增shutdown.sh脚本.../bin/bashpkill keepalived 配置keepalived.conf文件 [root@8166c07dd6c7 keepalived]# vi /etc/keepalived/keepalived.conf...[root@a40a40c6bde7 bin]# systemctl stop keepalived.service 配置Slave机器keepalived 新增shutdown.sh脚本,并且赋值可以执行权限.../bin/bashpkill keepalived 配置keepalived.conf文件 !
一样 vrrp_script chk_mysql { # 配置虚拟脚本 chk_mysql script "/etc/keepalived/check_mysql.sh" # 执行脚本..."的脚本 chk_mysql # 增加一个跟踪脚本到网口上 } virtual_ipaddress { # 虚拟 IP 192.168.1.38/24 }...} 主库 A 检查脚本,编辑 /etc/keepalived/check_mysql.sh 文件: #!...Linux 6 需要修改脚本 # MySQL账号密码 mysql_user="root" mysql_pass="123456" # MySQL错误日志输出 mysql_err="/mysql/...# 转换成 master 时,执行的脚本 virtual_ipaddress { 192.168.1.38/24 } } 主库 B 脚本,当发生主从切换时,会执行该脚本。
今天闲来无事,打算搭建一个MySQL的高可用架构,采用的是MySQL的主主结构,再外加Keepalived,对外统一提供虚IP。...两台机器如下: 192.168.73.141:MySQL(主1)、Keepalived(MASTER) 192.168.73.142:MySQL(主2)、Keepalived(BACKUP) 192.168.73.150...Keepalived高可用 MySQL主主结构已经搭建好了,无论从哪个MySQL插入数据,都会同步到另外一个MySQL。...服务是否存活的脚本 vrrp_script chk_mysql { script "/usr/bin/killall -0 mysqld" } # vrrp配置虚IP vrrp_instance...需要一致 virtual_ipaddress { 192.168.73.150 } # 检查脚本 vrrp_script的名字 track_script
core:Keepalived的核心程序,如全局配置的解析,进程启动等等。 etc:包含Keepalived的配置模板和启动脚本等文件。 include:头文件目录。...vrrp_script配置业务进程监控脚本。 script:设置脚本文件名。 interval:设置脚本执行的时间间隔,这里为每60秒执行一次。...track_script:设置追踪脚本,这里为check_run,即调用vrrp_script中定义的脚本。 notify_master:指定当切换到MASTER时执行的脚本。...Keepalived会自动使用ip addr进行绑定。 /home/mysql/master.sh的作用是状态改为master以后执行的脚本。...停止以后需要执行的脚本。
1.准备工作 MySQL、Keepalived的具体版本,虚拟主机等配置,都尽可能参考客户目前的生产环境安装规范来准备: 软件名称 版本 MySQL 5.7.29 Keepalived 2.0.20.../mysql/bin/mysqld_safe --defaults-file=/etc/mysql/my.cnf & 2.3 配置MySQL启动脚本: #拷贝启动脚本 cp /usr/local/mysql...} } 编辑 /etc/keepalived/check_mysql.sh vi /etc/keepalived/check_mysql.sh #!...stop fi # 修改chk_mysql.sh权限 chmod 755 /etc/keepalived/check_mysql.sh # 启动keepalived # service keepalived...Configuration File for keepalived vrrp_script chk_mysql_port { script "/etc/keepalived/check_mysql.sh
auth_type PASS 24 auth_pass 1111 25 } 26 track_script { 27 check_mysqld #执行定义的监控脚本.../mysqlcheck/keepalived_check_mysql.sh " 35 interval 2 36 } 4.3 创建检测脚本 1 [root@Master01 ~]# mkdir...-p /etc/keepalived/mysqlcheck/ 2 [root@Master01 ~]# vi /etc/keepalived/mysqlcheck/keepalived_check_mysql.sh...4.5 创建检测脚本 1 [root@Master02 ~]# mkdir -p /etc/keepalived/mysqlcheck/ 2 [root@Master01 ~]# scp /etc.../keepalived/mysqlcheck/keepalived_check_mysql.sh root@172.24.8.11:/etc/keepalived/mysqlcheck/ 3 [root
本次主要介绍了利用 keepalived 实现 MySQL 数据库的高可用。 基本思路: Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样。...实现高可用的基本环境: OS:centos7.0 x86_64 Mysql 版本:mysql 5.7.22 Keepalived: keepalived-2.0.6 Mysql-vip:192.168.1.100...执行 make install 操作之后,会自动生成/etc/init.d/keepalived 脚本文件,但还需要手动添加为系统服务,这样就可以使用 service、chkconfig 工具来keepalived...停止master1的 MySQL 服务,看 keepalived 健康检查程序是否会触发我们编写的脚本 ? Master2 主的查看结果: ?...通过测试说明在主服务上停止 MySQL 服务,触发了我们编写的脚本,进行自动故障切换。
前面大家介绍了主从、主主复制以及他们的中间件mysql-proxy的使用,这一篇给大家介绍的是keepalived的搭建与使用!...echo "zyh"|sudo -S killall keepalived 给脚本添加执行权限:sudo chmod u+x closekeepalived.sh 配置完成之后开启服务: ?...2.5、测试使用keepalived获取MySQL服务器的连接 注意:我是在我的udzyh2中测试的 在这里我们使用虚拟ip登录上了udzyh1中的MySQL服务器(因为它是主节点:竞争到了虚拟...2.6、MySQL服务宕机 我们通过说我们udzyh1中的MySQL服务宕机之后,keepalived检测到了它宕机,会执行配置文件的脚本,使得keepalived停止, 备份节点的keepalived...但是我在测试的时候,它不执行脚本,所以即使我强行使用sudo killall mysqld关闭MySQL服务,它不会执行脚本,导致不会关闭 keepalived。
# 1.安装脚本 #!...$user/mysql/ /usr/local/mysql mv /usr/bin/mysql /usr/bin/mysql.bk$(date '+%Y%m%d%H%M%S') &> /dev/...-u${mysql_user} -p"${mysql_passwd}" -e "${create_db_sql0}" 2>/dev/null mysql -u${mysql_user} -p"...${mysql_passwd}" -e "${create_db_sql1}" 2>/dev/null mysql -u${mysql_user} -p"${mysql_passwd}" -e...-u${mysql_user} -p"${mysql_passwd}" /dev/null echo "--------------------
/mysql/bin/mysql -h${hostip} -P${port} -u${user} -p${passwd} -e "$cmd1"| grep ':' | grep -v 'Variable_name.../mysql/bin/mysql -h${hostip} -P${port} -u${user} -p${passwd} -e "$cmd5"| grep ':' | grep -A1 'log_error..._$(date +%Y_%m_%d).log /home/mysql/mysql/bin/mysql -h${hostip} -P${port} -u${user} -p${passwd} -e "$.../mysql/mysql/bin/mysql -h${hostip} -P${port} -u${user} -p${passwd} -e "$cmd4" | grep -Po '(?...:.*)') Slave_SQL_Running_S=$(/home/mysql/mysql/bin/mysql -h${hostip} -P${port} -u${user} -p${passwd}
五、配置keepalived实现双机热备 1.master安装keepalived并配置: # yum install -y keepalived # vim /etc/keepalived/keepalived.conf... weight 3 notify_down /tmp/mysql.sh #当mysql服务down时,执行此脚本,杀死keepalived实现切换... weight 3 notify_down /tmp/mysql.sh #当mysql服务down时,执行此脚本,杀死keepalived...$ # systemctl start keepalived 两台mysql服务器授权允许root远程登录: # mysql -uroot -p123456789 mysql> grant all on...master上启动mysql服务和keepalived服务: # systemctl start mysqld # systemctl start keepalived # ip addr 1: lo:
/bin/bash # 以下配置信息请自己修改 mysql_user="root" #MySQL备份用户 mysql_password="summer123" #MySQL备份用户的密码 mysql_host...#欢迎语 # 判断MYSQL是否启动,mysql没有启动则备份退出 mysql_ps=`ps -ef |grep mysql |wc -l` mysql_listen=`netstat -an |grep...LISTEN |grep $mysql_port|wc -l` if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; then echo "ERROR:MySQL...exit else echo $welcome_msg fi # 连接到mysql数据库,无法连接则备份退出 mysql -h$mysql_host -P$mysql_port -u$mysql_user...`mkdir -p $backup_dir` `/home/summer/mysql/bin/mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p
常用功能脚本 1.导出整个数据库 mysqldump -u 用户名 -p –default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqldump...数据库控制台,如mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source wcnc_db.sql...p -D dbname < filename.sql 启动与退出 1、进入MySQL: 启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可。...此时的提示符是:mysql> 2、退出MySQL: quit或exit 库操作 1、创建数据库 命令:create database 例如:建立一个名为sqlroad的数据库 mysql>...; 9、导入.sql文件命令 (例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql; 10、删除表 mysql>
领取专属 10元无门槛券
手把手带您无忧上云