mysql开主从导致缓冲区_MySQL的主从复制

环境:系统内核版本:Linux version 2.6.18-308.el5

Mysql版本:mysql-5.5.28

主服务器IP:172.16.7.1

从服务器IP:172.16.7.2

注意事项:

1.为了避免循环复制,在主从模型中,任何一台服务器彼此间都需要一个ID号标识,而且彼此间绝对不能相同。

2.在主服务器上,并不是每个节点都可以到主服务器上面进行同步复制数据的,因此需要在主机上建立密码帐号,只有持有帐号密码的用户才可以访问复制数据。

3.从服务器开启中继日志

搭建一个简单的主从服务器需要如下基本要求:

对主服务器:

1.每个server-id =要唯一

2.开启二进制日志

3.创建一个具有复制权限的用户帐号

4.设定二进制日志缓冲区刷写,每当有二进制日志更新,就立即同步

对从服务器:

1.每个server-id =要唯一

2.开启中继日志

3.以中继用户连接到主服务器就可以

4.设置为只读

如果主服务器已经运行很久了,在主服务器上要创建一个完全备份,而后在从服务器应用此备份,并在连接至主服务器指定二进制日志文件和其事件位置

操作步骤如下:

主服务器配置:

vim /etc/my.cnf

datadir = /data/mydata  #数据所在目录

server-id = 1   #用于唯一标示自己

log-bin=/binlog/mysql-bin #二进制日志所在目录,将其和数据分开存放

sync_binlog=1   #同步二进制日志

启动mysqld

service mysqld start

进入数据库,给从服务器复制权限

mysql>GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO rpuser@'172.16.%.%'IDENTIFIED BY'redhat';

mysql>FLUSH PRIVILEGES;

mysql>SHOW MASTER STATUS;   //指定从哪儿开始复制

msql>SHOW BINLOG EVENTS IN 'mysql-bin.000001';//查看以前的事件

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |      354 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)  //记录二进制日志事件发生所在位置

在从服务器上

安装mysql,添加系统帐号

修改配置文件

vim /etc/my.cnf

datadir = /data/mydata

#log-bin=mysql-bin   //二进制日志开启功能注释掉

server-id       = 10     //自己的ID号

relay-log = /relaylog/mysql-relay   //开启中继日志

relay-log-index = mysql-relay.index //中继日志索引

read-only=1  //从服务器只提供读的功能,设定为只读

启动服务

[root@lab ~]#service mysqld start

进入数据库,设定主服务器

mysql>CHANGE MASTER TO  master_host='172.16.7.1', master_user='reuser', master_password='redhat', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=354;

######################################

master_log_file='mysql-bin.000001'//指定从哪个二进制日志文件开始复制

master_log_pos=354    //从二进制日志复制的位置

以上的这两项参数可以通过主服务器中mysql>SHOW MASTER STATUS中获取

启动从服务器

mysql>START SLAVE;//默认是两个线程都启动的,如果想要启动一个线程,可以手动指定

mysql>SHOW SLAVE STATUS\G;//查看从服务器是否启动成功;查看各服务器中变量是否成功启用

验证:

主服务器:在主服务器上创建数据库查看从服务器是否正常

查看主服务器状态

从服务器是否同步

以上是主服务器中没有数据的情况,假如说从服务器同步主服务器中数据时主服务器中已经存在有数据:

则在同步之前要将主服务器中之前的数据导入到从服务器

Master服务器:

mysqldump --all-databases --lock-all-tables --flush-logs --master-data=2 >/tmp/data.sql

scp /tmp/data.sql lab1:/tmp

并记录下主服务器现在的二进制日志及所在位置

mysql> FLUSH TABLES READ LOCK;

Query OK, 0 rows affected (0.06 sec)

mysql> SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000003 |      107 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

mysql> UNLOCK TABLES;

Query OK, 0 rows affected (0.00 sec)

Slave服务器:

导入主服务器中原有数据

mysql 

mysql>CHANGE MASTER TO  master_host='172.16.7.1', master_user='reuser', master_password='redhat', master_port=3306, master_log_file='mysql-bin.000003', master_log_pos=107;

启动从服务器即可

mysql>START SLAVE;

以上为实验的简单步骤,仅供各位参考。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值