mysql主从可以避免主机意外带来的损失,主库出现问题,可以快速切换到从库提供服务。
可以在从库上执行查询操作,从主库中更新。实现读写分离可以在从库中执行备份,以避免备份期间影响主库的服务。
主:
vim master.sh#!/bin/bashecho \"此脚本用于搭建主从环境 (主)\"#检测是否安装MySQLrpm -qa | grep mariadb-server &> /dev/nullif [ $? -eq 0 ];thenecho \"mysql 已经安装elseecho \"未安装MySQL 开始安装MySQL…… \"echo \"请耐心等待\"yum -y install mariadb mariadb-server &> /dev/nullecho \" mysql 安装成功\"fi
修改配置文件:
echo \"正在修改mysql主的配置文件\"sed -i \'/server/d\' /etc/my.cnfsed -i \'/log-bin/d\' /etc/my.cnfsed -i \'1a\\log-bin=mysql-bin\' /etc/my.cnfsed -i \'2a\\server-id=1\' /etc/my.confecho \" 配置文件修改成功 ,正在启动MySQL……\"systemctl start mariadb &> /dev/null
登陆数据库授权用户
a = \" grant all on *.* to axiba@\'%\' identified by \'123\'\"mysql -u root -e \"${a}\"mysql -uroot -e \'show master status\' | grep mysql| awk \'{print $1}\' &> /shell/mysqlzhu.logmysql -uroot -e \'show master status\' | grep mysql| awk \'{print $2}\' &>> /shell/mysqlzhu.logecho \" 授权成功!!!\"systemctl iptables stopsetenforce 0
从:
#!/bin/bashfile=`cat /shell/mysqlzhu.log |sed -n \'1p\'`pid=`cat /shell/mysqlzhu.log|sed -n \'2p\'`#mysql主从之从数据库操作#安装mysql数据库服务rpm -qa | grep mysql-server &>/dev/nullif [ $? -eq 0 ]thenecho \"mysql已经成功安装\"elseecho \"mysql没有安装,现在开始安装mysql\"yum -y install mariadb mariadb-server&>/dev/nullecho \"mysql安装完成\"fi
修改配置文件:
echo \"##修改mysql从的配置文件中\"sed -i \'/relay/d\' /etc/my.cnfsed -i \'/server/d\' /etc/my.cnfsed -i \'1a\\relay-log=mysqlbin\' /etc/my.cnfsed -i \'2a\\server-id=2\' /etc/my.cnf
启动
systemctl start mairiadb
授权
echo \"###mysql从中在操作\"mysql -uroot -e \"stop slave\"echo \"主从开始同步!\"change=\"change master to master_user=\'axiba\',master_host=\'10.30.36.22\',master_password=\'123\',master_log_file=\'\"$file\"\',master_log_pos=\"$pid\"\" &>/dev/nullmysql -uroot -e \"$axiba\" &>/dev/nullecho \"同步完成!!!\"mysql -uroot -e \"start slave\"echo \"开启同步成功!!!\"sleep 20mysql -uroot -e \"show slave status \\G\" | grep Yes|cut -d \":\" -f2 > /shell/mysqlcong.logecho \"测试是否成功,双yes则成功\"cat /shell/mysqlcong.logyes=`cat /shell/mysqlcong.log`b=\"Yes Yes\"user=\" ****@qq.com\"sub=\"mysql主从\"con=\"主从失败!!!请及时解决\"conc=\"主从成功\"if [ \"$yes\"=\"$b\" ]thenecho \"mysql主从设置成功!!!\"/shell/sendemail.sh \"$user\" \"$sub\" \"$conc\" &>/dev/nullelseecho \"mysql主从同步失败!!!\"/shell/sendemail.sh \"$user\" \"$sub\" \"$con\" &>/dev/nullfi