首页 > 数据库 >mysql主从自动搭建

mysql主从自动搭建

时间:2023-02-24 18:33:05浏览次数:56  
标签:slave SYNC master USER mysql WHERE 主从 搭建

1.主服务器 ​​master.sh​

#!/bin/bash
#====================================================
# Author: Mr.Song
# Create Date: 2019-02-21
# Description: auto config MySQL master&slave
#====================================================
MYSQL_PASSWORD="123456"
SYNC_USER="MySQL_SYNC_USER"
SYNC_USER_PASS="123456"

yum install -y mariadb mariadb-server mariadb-devel

if [ $? -eq 0 ];then
sed -i '/socket/a\server-id=1\nlog-bin=mysql-bin' /etc/my.cnf
systemctl start mariadb
else
exit 1
fi
cat > master.sql <<- EOF
UPDATE mysql.user SET Password=PASSWORD('$MYSQL_PASSWORD') WHERE User='root';
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\\_%';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
grant replication slave on *.* to '$SYNC_USER'@'%' identified by '$SYNC_USER_PASS';
FLUSH PRIVILEGES;
EOF
mysql -uroot < master.sql

2.从服务器 ​​slave.sh​

#!/bin/bash

SLAVE_LOG_FILE=`mysql -uroot -p111111 -h'$MASTER_HOST' -e "show master status;" |grep mysql |awk '{print $1}'`
SLAVE_LOG_POS=`mysql -uroot -p111111 -h'$MASTER_HOST' -e "show master status;" |grep mysql |awk '{print $2}'`
MYSQL_PASSWORD="123456"
MASTER_HOST="192.168.10.11"
SLAVE_HOST="192.168.10.12"
SYNC_USER="MySQL_SYNC_USER"
SYNC_USER_PASS="123456"

yum install -y mariadb mariadb-server mariadb-devel

if [ $? -eq 0 ];then
sed -i '/socket/a\server-id=2\nlog-bin=mysql-bin' /etc/my.cnf
systemctl start mariadb
else
exit 1
fi

cat > slave.sql <<- EOF
UPDATE mysql.user SET Password=PASSWORD('$MYSQL_PASSWORD') WHERE User='root';
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\\\_%';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
change master to master_host='$MASTER_HOST',master_user='$SYNC_USER',master_password='$SYNC_USER_PASS',master_log_file='$SLAVE_LOG_FILE',master_log_pos=$SLAVE_LOG_POS;
slave start;
FLUSH PRIVILEGES;
EOF

mysql -uroot < slave.sql
mysql -uroot -p111111 -e 'show slave status\G'|grep Slave

3.复制从库脚本到从库执行

scp slave.sh $SLAVE_HOST:/root/
ssh $SLAVE_HOST bash -x /root/slave.sh

标签:slave,SYNC,master,USER,mysql,WHERE,主从,搭建
From: https://blog.51cto.com/u_14316134/6084323

相关文章

  • 今日总结-springboot搭建
    SpringBoot环境搭建相信大家都对SpringBoot有了个基本的认识了,前面一直在说,SpringBoot多么多么优秀,但是你没有实际的搭建一个SpringBoot环境,你很难去体会SpringBoot......
  • mysql半同步
    什么是半同步复制所谓的半同步复制就是master主服务器每commit一个事务(简单来说就是做一个改变数据的操作),要确保slave从服务器接收完主服务器发送的binlog日志文件并写入......
  • 免费开源的邮件服务器搭建
    最近工作中用到邮件,用163和qq还需要设置授权码和外网,而且没有匿名发送邮件功能。网上找了个开源的邮件服务器(ewomail)用来测试。顺便记录下部署过程。环境CentOSLinuxre......
  • 【django-Vue】项目day01 pip永久换源 虚拟环境搭建 项目前后端创建 项目目录调整
    目录昨日回顾1企业项目类型2企业项目开发流程3路飞项目需求4pip永久换源5虚拟环境搭建5.1使用pycharm创建虚拟环境5.2通用方案创建虚拟环境6luffy项目前后端创建6......
  • MySQL数据库架构&SQL注入漏洞
    1.查找zblog数据库中有哪些表查找目标表(zbp_member)中的的字段查找目标表中的目标数据(管理员的用户名密码)4.使用UNION语句替换掉原有查询结果,显示zblog数据库中的所有表。网......
  • 【后端过程记录】用flask搭建服务器作后端接收数据 将base64字符串码解码为可读取文件
    因为项目的原因了解到有一个python的flask框架,查了一下:关于前端图片上传的canvas:如下元素<canvasid="canvas"width="5"height="5"></canvas>可以用这样的方式获......
  • Mysql记录
    远程操作mysql远程连接:mysql-hhost-uusername-p'password'mysql远程dump并导出:mysqldump-hhost-uusername-p'password'库名>dump.sqlmysql直接执行......
  • MySQL数据库学习笔记1
    MySQL数据库学习笔记1MySQL服务器启动与连接#启动mysql.serverstart#连接mysql-uroot-pMySQL数据库的数据模型客户端访问MySQL数据库,是与数据库管理系统交......
  • Linux中安装mysql
    检查当前系统是否安装过mysql[root@master~]#rpm-qa|grepmariadbmariadb-libs-5.5.68-1.el7.x86_64#已经存在存在则先卸载[root@master~]#rpm-e--nodepsm......
  • MySQL迁移后续的校验
     MySQL迁移后续的校验 以前搞的Oracle迁移后续步骤有个校验过程。    其中,由于权限信息过多,所以比对是在目标端创建一个可以连接到源端库的dblink,通过minus来......