首页  >  文章  >  数据库  >  mysql数据库的主从同步过程详述(一)

mysql数据库的主从同步过程详述(一)

WBOY
WBOY原创
2016-06-07 17:40:01956浏览

在看过老男孩老师博客http://oldboy.blog.51cto.com/2561410/839399里写的关于mysql的主从复制后,我将自己做的试验过程记录如下,包括脚本,故障解决,图文并茂叙述

   在看过老男孩老师博客里写的关于mysql的主从复制后,我将 自己做的试验过程记录如下,包括脚本,故障解决,图文并茂叙述过程,因篇幅过长,可能有所删减,请看到此文的朋友见谅.   因借鉴老男孩老师的视频,虽然不是他的学生,也在此默默的感谢他的视频,他视频里的环境是在一机多实例的环境当中,并且mysql可能做了相关优化,我的环境则是两台机器上,有任何不对的地方欢迎大家指出.

1复制准备

port3306

port3306

数据库环境准备,具备两台服务器每个机器一个数据库的环境.

2.主库上执行操作

[mysqld]

server-id = 1

log-bin = mysql-bi

提示:

restart

 

/etc/init.d/mysql  restart

mysql  -uroot  -p'123123'  -S  /tmp/mysql.sock

mysql>select   user();    查看用户

表);

用户访问;

#identified  by  "123456" , 123456为密码,香港空间,实际环境时复杂一点为好。

再次检查创建的rep账号

select  user.host  from  mysql.user;

也可以查看用户权限   mysql>show  grants  for  rep@'192.168.1.%';

2.3对数据库锁表只读(当前窗口不要关闭)

生产环境时,香港服务器,操作主从复制,需要申请停机时间,锁表会影响业务。

mysql>flush  tables  with  read  lock;

提示,这个锁表命令的时间,在不同引擎的情况,会受下面参数的控制,锁表时,如果超过设置时间不操作会自动解锁;

interactive_timeout = 60

wait_timeout = 60

默认情况下的时长为:

mysql>show  variables  like  "%timeout%";  可以查看到默认值很大

2.4查看主库状态

查看主库状态,即当前日志文件名和二进制日志偏移量

show  master  status;命令显示的信息要记录在案,后面的从库复制时是从这个位置开始的。

2.5导出数据库数据

mkdir  /server/backup/  -p

mysqldump  -uroot  -p"123123"  -S  /tmp/mysql.sock  -A  -B  | gzip  > /server/backup/mysql_bak.$(date  +%F).sql.gz

等参数(导库时会直接覆盖所有的)。

ls  -l  /server/backup/mysql_bak.$(date  +%F).sql.gz

为了确保导库期间,数据库没有数据插入,可以再检查下主库状态信息

mysql  -uroot  -p"123123"  -S  /tmp/mysql.sock  -e  "show  master  status"

提示,无特殊情况,binlog文件及位置点是保持不变的。

导库后,解锁主库,恢复可写;

mysql>unlock  tables;

特别提示,有读者这里犯迷糊,实际上做从库的,无论主库更新多少数据了,最后从库都会从上面show  master  status  的位置很快赶上主库的位置进度的。

ls  -l  /server/backup/mysql_bak.$(date  +%F).sql.gz

请继续关注mysql数据库的主从同步过程详述(二)

本文出自 “王海鹏” 博客,转载请与作者联系!

,网站空间
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn