脚本方式一键快速创建MySQL从库

这里假设我们已经在远程主机安装好了mysql5.6,并且各种参数基本和主库一致,主库能免密码SSH登录到从库,主从库都安装了xtrabackup。

假设主库地址:192.168.2.11

将要配置的从库地址:192.168.2.12

脚本如下,写的比较烂,轻拍:

#!/bin/bash
# 一键创建从库,需要确保本机能ssh免密码登录到从库机器。需要确保二者机器的时间同步。
# 写的比较烂,有时间再改改。
# Date: 2017/02/10 By 一只菜鸡

echo "
######################################################################################
请确保从库的server-id与本机不相同,且其他涉及到日志类的参数尽量与本机一致。
(脚本里面默认从库的datadir为/data/mysql)
这里我们默认已经在主库上执行过创建同步的账户的SQL了,且主库能SSH秘钥方式登录到从库机器
10s内你可以ctrl+c取消执行本脚本
######################################################################################
"

sleep 10

# 待配置的从库IP
REMOTE_HOST=‘192.168.2.12‘

# 本机MySQL配置信息
USER=‘root‘
PASS=‘[email protected]‘
SOCKET=‘/tmp/mysql.sock‘

# 定义三个函数
function init_remote(){
  # 给远程主机安装lz4、创建存放备份文件的目录
  ssh [email protected]$REMOTE_HOST ‘yum install lz4 -y‘
  ssh [email protected]$REMOTE_HOST ‘mkdir /tmp/mysql -p‘
}

function copy_to_remote() {
  # 该备份方法参考自姜承尧大牛的微信公众号
  /usr/bin/innobackupex --user=$USER --password=$PASS --parallel=4 --socket=$SOCKET --no-timestamp --stream=xbstream . |  lz4 -B4 |  ssh [email protected]$REMOTE_HOST   "cat - | lz4 -d -B7 | xbstream -x -C /tmp/mysql"
}

function apply_to_remote (){
  ssh [email protected]$REMOTE_HOST ‘innobackupex --apply-log /tmp/mysql/‘
  ssh [email protected]$REMOTE_HOST ‘/bin/rm -fr /data/mysql/*‘
  ssh [email protected]$REMOTE_HOST ‘mv /tmp/mysql/* /data/mysql/‘
  ssh [email protected]$REMOTE_HOST ‘chown mysql.mysql /data/mysql/ -R‘
  ssh [email protected]$REMOTE_HOST ‘/etc/init.d/mysqld start‘
}

# 依次执行上面的3个函数
init_remote || echo "init_remote failed. exit"
copy_to_remote
apply_to_remote || echo "apply to remote failed. exit"

echo "
###############################################################################
从库的数据已经同步完成,还需要去从库修改my.cnf 在
[mysqld]段加上relay_log = mysql-relay.bin 重启数据库,
然后登录数据库执行:
RESET MASTER;
再执行CHANGE MASTER TO的指令,然后start slave;即可。

格式如下:
CHANGE MASTER TO
   MASTER_HOST=‘192.168.2.11‘, 
   MASTER_USER=‘repluser‘,
   MASTER_PASSWORD=‘[email protected]‘,
   MASTER_PORT=3306,
   MASTER_LOG_FILE=‘mysql-bin.000012‘,
   MASTER_LOG_POS=500,
   MASTER_CONNECT_RETRY=10,
   MASTER_HEARTBEAT_PERIOD=60; 
###############################################################################
"

这样就可以直接

时间: 2024-10-16 17:48:08

脚本方式一键快速创建MySQL从库的相关文章

一分钟在云端快速创建MySQL数据库实例

本教程将帮助您了解如何使用Azure管理门户迅速创建,连接,配置MySQL 数据库 on Azure.完成本教程后,您将在Azure上拥有一个示例MySQL数据库服务器,并了解如何使用管理门户执行基本管理任务. 步骤一:登陆Azure管理门户,创建MySQL服务器 登陆到Azure 管理门户, 在右侧导航条选中MySQL 数据库 on Azure. 单击页面底部的"新建",单击"新建"后,屏幕上将会出现一个显示可创建内容的列表. 单击"MySQL 数据库

创建MySQL从库

我们知道Oracle有DataGuard实时备份数据,可以做主备切换,而MySQL也有自己的一套备库方案,称之为主从复制. 搭建MySQL从库是为了实时同步主库数据,同时也可以分担主库的读压力,对数据库端做成读写分离结构. 搭建MySQL主从库注意点: 1.主库和从库的 server-id 一定不能相同. 2.在主库创建replication slave账户. grant replication slave on *.* to 'repl'@'192.168.0.232' identified

使用Percona Xtrabackup创建MySQL slave库

MySQL Server 版本: Server version: 5.7.10-log MySQL Community Server (GPL) Percona Xtrabackup 版本: innobackupex version 2.4.2 Linux (x86_64) (revision id: 8e86a84) 说明: [master]:表示在master库上执行的语句 [slave]:表示在slave库上执行的语句 --执行master库的全备[master]innobackupex

GitBook的使用方式,快速创建网页文档

环境需求:node npm 得装好 ----------------------------------- 我一开始不知道得先装gitbook-cli 先执行了 npm install gitbook -g 然后执行 gitbook -V   报了个错: You need to install "gitbook-cli" to have access to the gitbook command anywhere on your system.If you've installed t

shell中创建mysql库和执行sql脚本

以前执行oracle脚本都是放到plsql中执行 mysql 脚本执行: (1).先创建一个worlddb库 (2).导入sql脚本: 这就ok啦,哈哈.

如何快速使用MindManager快速创建思维导图模板

绘制一幅完整的思维导图第一步就是要开始新建一个导图,MindManager提供了多种方式帮助用户新建导图,包括新建空白导图.使用模板创建导图以及从外面导入文件等等,本文将简要介绍五种方式教您如何新建MindManager思维导图. 选项一 创建空白思维导图 通过以下4种方式可以快速创建一个空白的MindManager思维导图模板,导图的中心主题为Central Topic,单击模块即可添加主题信息,然后点击Enter键即可创建其他主题. · 双击底部工作簿标签栏附近空白区域 · 通过快速访问工具

windows azure虚拟机创建——快速创建,库模板创建

在 Windows Azure 上创建新虚拟机是一件非常轻松的事情.只需使用浏览器访问 Windows Azure 管理门户,选择左侧的"虚拟机"选项卡,然后单击底部命令栏中的"新 建"按钮. 这里我们有两种方式可以选择:快速创建创建虚拟机或者从库中选择模板来创建虚拟机,这篇博文将对两种方式都进行下介绍 首先,我们选择"快速创建",输入相应的信息并选择系统映像和CPU及内存规格,这里需要注意的是密码一定要符合复杂性要求:8个字符.数字.大小写字母

二进制方式快速安装MySQL数据库命令集合

镜像源: http://mirrors.sohu.com/ 1.二进制方式快速安装MySQL数据库命令集合 1.安装mysqlcd /usr/local/srcwget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.48-linux2.6-x86_64.tar.gzls mysql-5.5.32-linux2.6-x86_64.tar.gztar xf mysql-5.5.32-linux2.6-x86_64.tar.gz mv mysql-

Linux环境下MySQL基础命令----查看、创建、删除库和表

案例二,查看数据库 MySQL是一套数据库管理系统,支持运行多个库,每个库相当于一个容器,存放着许多表.数据就存在这些表中,所以查看.创建.删除库和表,在工作中必不可少. 一,查看 1,查看当前服务器中有哪些库 使用命令:SHOW DATABASES;          //查看库信息 2,查看当前使用的库中有哪些表 使用命令: USE mysql;                                 //使用USE命令切换到名为mysql的表中 使用命令: SHOW TABLES;