Skip to content

Instantly share code, notes, and snippets.

@almir
Last active July 16, 2018 20:49
Show Gist options
  • Save almir/d0a1c96fd2e6bf9b61b5 to your computer and use it in GitHub Desktop.
Save almir/d0a1c96fd2e6bf9b61b5 to your computer and use it in GitHub Desktop.
Service script for mysqlfailover utility
#!/bin/bash
### BEGIN INIT INFO
# Provides: mysqlfailover
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $network $time
# Should-Stop: $network $time
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/Stop mysqlfailover utility
# Description: This service script facilitates startup and shutdown of
# mysqlfailover utility as daemon
### END INIT INFO
# Source function library
. /lib/lsb/init-functions
LOGFILE="/var/log/mysql/mysqlfailover.log"
CONFIGURATION="/etc/default/mysqlfailover"
. ${CONFIGURATION}
case "$1" in
start)
log_daemon_msg "Starting mysqlfailover utility"
/usr/bin/mysqlfailover --daemon=start \
--master="${MYSQLUSER}:${MYSQLPASSWORD}@${MYSQLMASTERNAME}:${MYSQLMASTERPORT}" \
--slaves="${MYSQLUSER}:${MYSQLPASSWORD}@${MYSQLSLAVENAME}:${MYSQLSLAVEPORT}" \
--rediscover \
--log=${LOGFILE} \
> /dev/null 2>&1
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping mysqlfailover utility"
/usr/bin/mysqlfailover --daemon=stop \
> /dev/null 2>&1
log_end_msg $?
;;
restart)
log_daemon_msg "Stopping mysqlfailover utility"
/usr/bin/mysqlfailover --daemon=restart \
--master="${MYSQLUSER}:${MYSQLPASSWORD}@${MYSQLMASTERNAME}:${MYSQLMASTERPORT}" \
--slaves="${MYSQLUSER}:${MYSQLPASSWORD}@${MYSQLSLAVENAME}:${MYSQLSLAVEPORT}" \
--rediscover \
--log=${LOGFILE} \
> /dev/null 2>&1
log_end_msg $?
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $?
# This is example mysqlfailover config file used by mysqlfailover
# service script.
# To be stored at /etc/default/mysqlfailover
MYSQLUSER="root"
MYSQLPASSWORD="Pa$$w0rd"
MYSQLMASTERNAME="mysql00"
MYSQLMASTERPORT="3306"
MYSQLSLAVENAME="mysql01"
MYSQLSLAVEPORT="3306"

First install mysql-utilities package:

sudo apt-get-y install mysql-utilities

Download files to local machine:

sudo wget https://gist.githubusercontent.com/almir/d0a1c96fd2e6bf9b61b5/raw/334712aebe429dca087672a3fd1d842fab0fa6c5/mysqlfailover.conf -O /etc/default/mysqlfailover
sudo wget https://gist.githubusercontent.com/almir/d0a1c96fd2e6bf9b61b5/raw/3d250cd34a0c8665531ba475b153a5bbf2a650b8/mysqlfailover -O /etc/init.d/mysqlfailover
sudo chmod +x /etc/init.d/mysqlfailover
sudo update-rc.d mysqlfailover defaults 99 10

Edit the /etc/default/mysqlfailover file.

Start the service:

sudo service mysqlfailover start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment