MySQL主从复制(脚本配合)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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     #从库落后主库的秒数

以上是关于MySQL主从复制(脚本配合)的主要内容,如果未能解决你的问题,请参考以下文章

MyCat教程mysql主从复制实现

监控MySQL主从复制状态的脚本

监控MySQL主从复制状态的脚本

一键安装MySQL 主从复制SHELL脚本

完结撒花MySQL(二十三)主从复制

MySQL主从复制的风险与防范