MySQL主从复制(脚本配合)

首先需要有两台mysql服务器,我是同过mysql的多实例来实现的主从复制,实验中用的了脚本,可以参考多实例环境的搭建

多实例环境搭建 http://aby028.blog.51cto.com/5371905/1892250

主:3306(master)

从:3307(slave)

保证 mysql 多实例的正常运行

netstat -tlunp | grep 330

查看 log-bin 和 server-id

egrep "log-bin|server-id" /data/{3306,3307}/my.cnf

/data/3306/my.cnf:log-bin = /data/3306/mysql-bin          # master开

/data/3306/my.cnf:server-id = 1

/data/3307/my.cnf:#log-bin = /data/3307/mysql-bin       # slave可以关闭

/data/3307/my.cnf:server-id = 3

若更改 mysql 的配置文件需要重启数据库

/data/3306/mysql stop

/data/3307/mysql stop

/data/3306/mysql start

/data/3307/mysql start

登陆主库3306

mysql -uroot -p123456 -S /data/3306/mysql.sock

查看 mysql 的配置参数

mysql> show variables like "log_bin";

mysql> show variables like "server_id";

在主库授权一个账号,专门用于同步,然后刷新权限

grant replication slave on *.* to [email protected]‘%‘ identified by ‘123456‘;

flush privileges;

检查刚才的操作

select user,host from mysql.user;

show grants for [email protected]‘%‘;

锁表。锁表后自己将无法创建数据库

flush table with read lock;

备份打包 (需要另开一个窗口,保证之前的窗口不能退出)

mysqldump -uroot -p123456 --events -S /data/3306/mysql.sock -A -B | gzip > /opt/bak_$(date +%F).sql.gz

打包完成后,再次查看状态,保证与之前的查询状态一样,证明数据没有写入

show master status;

解锁表

unlock tables;

将刚才备份好的 gzip 文件导入到 3307 数据库  (全量备份)

cd /opt/

gzip -d bak_2017-01-06.sql.gz

mysql -uroot -p123456 -S /data/3307/mysql.sock < bak_2017-01-06.sql

增量备份,登陆从库配置同步参数

CHANGE MASTER TO

MASTER_HOST=‘192.168.6.45‘,

MASTER_PORT=3306,

MASTER_USER=‘rep‘,

MASTER_PASSWORD=‘123456‘,

MASTER_LOG_FILE=‘mysql-bin.000001‘,

MASTER_LOG_POS=459;

在 salve 上执行 start slave 操作,IO 连接

start slave;

查看当前的状态,关键有以下几个内容

show slave status\G;

Slave_IO_State: Waiting for master to send event

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Seconds_Behind_Master: 0     #从库落后主库的秒数

时间: 2024-07-30 07:24:00

MySQL主从复制(脚本配合)的相关文章

MySQL主从复制监控shell脚本

########本脚本应用在生产环境中,是运用mysql主从的基础上######## vi mysqlm-s.sh   #!/bin/bash  ip=`ifconfig eth0|sed -n 2p|awk  '{ print $2 }'|awk -F : '{ print $2 }'`  port=`netstat -anl|grep 3306 |sed -n '1p' |awk '{print $4}'|awk -F: '{ print $2}'`  array=($(mysql -uUS

Mysql 主从复制监控脚本

Mysql 主从复制监控脚本, 监控IO和SQL线程.如果问题.发送邮件报警. #!/bin/bash #write by lijun #Date 2014-08-12 #Description monitor the master pass the data to the slave #===================== mail="邮件地址" #=================== #获取slave io 进程和sql进程的状态 b="`mysql -uroot

mysql主从复制与读写分离

MySQL主从复制与读写分离 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面. 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部

MySQL主从复制、读写分离、高可用集群搭建

MySQL主从复制.读写分离.高可用集群搭建  一.服务介绍   1.1 Keepalived     Keepalived,见名知意,即保持存活,其目的是解决单点故障,当一台服务器宕机或者故障时自动切换到其他的服务器中.Keepalived是基于VRRP协议实现的.VRRP协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成虚拟设备,可以对外提供虚拟路由器IP(一个或多个),即漂移IP(VIP). 1.2 ProxySQL ProxySQL是一个高性能,高可用性的MySQL

MySQL主从复制介绍

1.1 MySQL主从复制原理介绍 MySQL的主从复制是一个异步的复制过程(虽然一般情况下感觉是实时的),数据将从一个MySQL数据库(我们称之为Master)复制到另一个MySQL数据库(我们称之为Slave),在Master与Slave之间实现整个主从复制的过程是由三个线程参与完成的,其中有两个线程(SQL线程和IO线程)在Slave端,另外一个线程(I/O线程)在Master端. 要实现MySQL的主从复制,首先必须打开Master端的binlog记录功能,否则就无法实现.因为整个复制过

mysql主从复制--mysql-5.5异步、半同步配置

背景介绍 mysql5.5之前版本,mysql主从复制比较简单 mysql5.6:gtid,multi-thread replication master 1 启用二进制日志 log-bin = master-bin log-bin-index = master-bin.index 2 选择一个唯一的server id server-id = [0~2^32] 3 创建具有复制权限的用户 replication slave,复制的从节点 replication client,联系master,获

MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现

Technorati 标签: 那你魔鬼 一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读

基于SSL的Mysql主从复制

一.实验目的: 1.跨越互联网加密复制 mysql基于SSL加密连接,为安全从服配置证书,从服拿账号到主服复制时,必须得到主服验证.双方建立SSL会话. 二.实验架构 在分布式架构中,时间必须同步 主节点: station20:192.168.1.20 从节点: station21:192.168.1.21 三.实验步骤 1.建立ssh互信 [[email protected] ~]# echo -e"192.168.1.21\tstation21\tstation21.example.com&

MySQL主从复制与读写分离的实现

MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面. 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的. 如下图所示: 下

CentOs Mysql主从复制与读写分离

MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面. 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的. 原理架构图 开始