mysql复制

来源:互联网 发布:淘宝保证金解冻步骤 编辑:程序博客网 时间:2024/06/05 06:34

实验环境
1、克隆机master与slave
2、IP地址
master:192.168.75.130
slave:192.168.75.129
3、mysql版本:mysql-5.1.73-7.el6.x86_64

复制的原理
将master的DML操作通过日志复制到slave中,然后slave执行这些日志,达到与master同步的过程,可作为master的备份,减轻用户对master访问的压力,然而,这是一个异步复制过程。

复制机制的过程
1、slave的io_thread连接上master,并向master请求指定日志文件中的指定位置之后的信息。
2、master的io进程接收到请求之后,就会将结果返回给slave,结果除了日志内容外,还包含bin-log-file与bin-log-pos。
3、slave的io_thread接收到结果,将结果添加到relay-log的末端,并将bin-log-file与bin-log-pos的信息添加到master.info,便于找到下次复制指定的文件位置信息
4、slave的sql_thread检测到relay-log有新的内容添加,就会执行新的日志内容

实验操作
master端的设置
1、修改/etc/my.cnf
这里写图片描述
2、关闭防火墙
这里写图片描述
3、开启mysql

[root@creep ~]# service mysqld start

4、登入mysql,并创建复制用户
这里写图片描述
5、锁表

mysql>flush tables with read lock;

6、查看master信息
这里写图片描述

slave端的设置
1、修改/etc/my.cnf
这里写图片描述
2、启动mysql

[root@creep ~]# service mysqld start

3、建立同步
这里写图片描述
4、开启slave

mysql> start slave;

5、查看slave状态
这里写图片描述
我·只截取了一部分,其中最重要的是Slave_IO_Running与Slave_sql_Running这两个参数,一定要同时为yes,才能复制成功,我之前就试过Slave_IO_Running为no,说明slave的io_thread连不上master,我只能将master端的防火墙关闭,然后在slave端执行start slave,再查看slave状态,就ok了

6、在master端,释放读锁

mysql> unlock tables;

测试
在master端创建一个replication的数据库
这里写图片描述
查看slave端的数据库
这里写图片描述
说明master-slave搭建成功

总结
在搭建过程中,slave的io_thread连不上master,后来发现是master的防火墙问题,其次slave的sql_thread在执行过程中可能出现错误,但是,我在配置过程中没有遇到,往后的学习中,如果遇到,才再次总结。

0 0
原创粉丝点击