MySQL主从复制配置

试验环境:Windows下安装的两台虚拟机,均使用centos系统。

MasterIP:192.168.1.250

Slave  IP:192.168.1.90

目的:在Master上已经存在一个test数据库,已经写入一部分数据。现在为Master增加一个Slave,用作Master的备份或者做数据报表或者分析。这样可以提高MySQL服务器数据的安全性与高可用性。

1、  配置Master的my.cnf文件

log-bin= mysql-bin      #查看bin-log是否开启

server-id= 250         #设置成和IP最后一个数字一样

binlog-ignore-db= mysql  # 设置不进行同步复制的数据库

binlog-ignore-db= information_schema

2、  在Master上建立repilication用户

mysql>grant repilication slave on *.* to 'repuser'@'%' identified by 'sylar';

用户名为:repuser

密码:sylar

3、  配置Slave的my.cnf文件

log-bin=mysql-bin

server-id= 90

replicate-do-db= test  #设置复制的数据库

replicate-ignore-db= mysql

replicate-ignore-db= information_schema

#另外可以指定relay-bin文件的名字,默认名为‘主机名‘+‘relay-bin‘。

4、  对Master数据库进行刷新flush并加锁

这一不可以不需要,mysqldum备份时会自动对数据库加锁。

mysql>flushtables with read lockl;

5、  创建数据库备份

#mysqldump  -uroot  -p --databases test > test.sql

6、  查看当前Master上的binlog文件及其位置

mysql>showmaster status;

File:mysql-bin.000045

Position:1371

Binlog_Do_DB:

Binlog_Ignore_DB:mysql,information_schema

        File和Position信息用于告诉Slave从何处开始复制。      

7、  解锁

mysql>unlock tables;

8、  在Slave上导入数据库备份文件,并设置与Master的复制连接

导入数据库备份文件: 

建立test数据库
导入数据库 mysql  -uroot -p < test.mysql

change master to master_host='192.168.1.250', master_user='repuser',master_password='sylar', master_log_file='mysql-bin.000045',master_log_pos=1371;

9、  启动Slave复制

mysql>slavestart;

10、检查Slave是否正常启动

mysql>show slave status\G;

其中两个选项:

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

均为Yes表示成功启动Slave复制。

Slave_IO用于读取bin-log日志的IO线程,Slave_SQL表示执行复制的SQL进程。

 

如果出现NO,可以查看错误mysql的data目录下的错误日志文件,查看具体的出错的原因。

在Master数据库进行新建表或者插入新的数据记录,查看Slave是否能够进行同步。


MySQL通过bin-log进行同步,在Master进行写操作(update,insert,create,delete),Slave上进行读操作(select)。比如优快云博客,你修改文章后,刷新发现读出文章没有进行更行,这很明显是读写分离。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值