首页 > 代码库 > shell之路--mysql主从自动部署

shell之路--mysql主从自动部署

#!/bin/bash

#auto make install Mysql AB Relication

#by author max

#date 2017-05-04

MYSQL_SOFT="mysql mysql-server mysql-devel php-mysql"

NUM=`rpm -qa |grep -i mysql |wc -l`

CODE=$?


#Mysql To Install 2017

if [ $NUM -ne 0 ];then

echo -e "\033[32mThis server mysql already install.\033[0m"

read -p "Please ensure yum remove mysql server , Yes or No[y/n]": INPUT

if [ $INPUT == "y" ];then

yum remove $MYSQL_SOFT -y

rm -rf /var/lib/mysql /etc/my.cnf

yum -y install $MYSQL_SOFT

else

exit 0

fi

else

rm -rf /var/lib/mysql

yum -y install $MYSQL_SOFT

if [ $CODE -eq 0 ];then

echo -e "\033[32mThe mysql install successfully.\033[0m"

exit 1

fi

fi


#mysql to start and config

cat >/etc/my.cnf<<EOF

[mysqld]

datadir=/car/lib/mysql

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

user=mysql

symbpolic-links=0

log-bin=mysql-bin

server-id=1

auto_increment_offset=1

auto_increment_increment=2

[mysql_safe]

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

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

replicate-do-db=all

EOF

/etc/init.d/mysqld restart

ps -ef |grep mysql


function MYSQL_CONFIG(){


#master config mysql 

mysql -e "grant replication slave on *.* to ‘max‘@‘%‘ identified by ‘zhaomiao‘;"

MASTER_FILE=`mysql -e "show master status;"|tail -1|awk ‘{print $1}‘`

MASTER_POS=`mysql -e "show master status;"|tail -1|awk ‘{print $2}‘`

MASTER_IPADDR=`ifconfig eth0 |grep "Bcast"|awk ‘{print $2}‘|cut -d: -f2`

read -p "please enter input slave ip address": SLAVE_IPADDR


#slave config mysql

ssh -l root $SLAVE_IPADDR "sed -i ‘s#server-id = 1#server-id = 2#g‘ /etc/my.cnf"

ssh -l root $SLAVE_IPADDR "/etc/init.d/mysqld restart"

ssh -l root $SLAVE_IPADDR "mysql -e \"change master to master_host=‘$MASTER_IPADDR‘,master_user=‘max‘,master_password=‘zhaomiao‘,master_log_file=‘$MASTER_FILE‘,master_log_pos=$MASTER_POS;\""

ssh -l root $SLAVE_IPADDR "mysql -e \"slave start;\""

ssh -l root $SLAVE_IPADDR "mysql -e \"show slave status\G;\""

}


read -p "please ensure your  server is master ? yes or no[y/n]": INPUT

if [ $INPUT == "y" ];then

MYSQL_CONFIG

else

exit 0

fi


shell之路--mysql主从自动部署