您当前的位置:首页 > 学海无涯 > 应用搭建网站首页应用搭建
MySQL数据库主从配置
发布时间:2015-11-02作者:佚名
实验环境:CENTOS 6
实验准备:三台计算机安装centos6系统,内存要求625MB以上; 计算机配置:
主: Tang 192. 168.20.2/24
从: test 192. 168.20.3/24
理论知识:
首先要明确mysql群集中可以有一个主服务器对多个从服务器,但一个从服务器 只能属于一个主服务器,否则会导致数据混乱。
mysql5.5及以前的版本:复制功能相对简单
mysql5.6之后:引用了 gtid全局事物号;以及多线程复制
配置mysql复制的基本步骤:
一、master 配置
1、启用二进制日志
Log-bin = master-bin
Log-bin-index=master-bin. index
2、选择唯一'的 server-id
server-id = (1 到 2 的 32 次方-1)
3、创建具有复制权限的用户rcp_slave
replication slave
replication client
4、查询主数据库状态
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000005 | 261 | | |
+------------------+----------+--------------+------------------+
记录下 FILE 及 Position 的值,在后面进行从服务器操作的时候需要用到。
二、slave 配置
1、启用中继曰志
relay-log = relay -log
relay-log-index=可以不写
2、选择唯一的server-id 不能比主服务器靠前
3、连接至主服务器,并开始复制数据;
mysql> change master to master_host='192.168.20.2', master_user='rcp_slave',master_password='PWD' ,master_log_file='mysql-bin.000005' ,master_log_pos=261;
//主节点日志供从节点复制的起始位置是用于主节点己经运行了一段时间,由于 业务繁忙加入从节点实现读写分离,然而从节点复制的起始位置不同与主服务器更新同步所花的时间长短有关。如主从之前已有数据,先进行附录操作。
mysql> start slave; mysql> show slave status;
==============================================
**************** 1. row *******************
Slave_IO_State:
Master_Host: 192.168.20.2
Master_User: rcp_slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000005
Read_Master_Log_Pos: 261
Relay_Log_File: localhost-relay-bin.000008
Relay_Log_Pos: 261
Relay_Master_Log_File: mysql-bin.000005
Slave_IO_Running: YES
Slave_SQL_Running: YES
Replicate_Do_DB:
……………省略若干……………
Master_Server_Id: 1
1 row in set (0.01 sec)
==============================================
其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。
复制线程: master:dump
slave:10一Thread, SQL-Thread
//当 master 不在线时,master 的 dump 停止了,slave 的 I/Othread 访问不了 dump, 所以它也无法工作,但是SQL_thread没有停止,它一直处于等待状态。而且 SQL一thread是多线程的工作的。
附录:
如果主服务器已经存在应用数据,则在进行主从复制时,需要做以下处理: (1)主数据库进行锁表操作,不让数据再进行写入动作 mysql> FLUSH TABLES WITH READ LOCK; (2)查看主数据库状态 mysql> show master status; (3)记录下 FILE 及 Position 的值。 将主服务器的数据文件(整个/usr/local/mysql/data目录)复制到从服务器,建议通过tar归档压缩后再传到从服务器解压。 (4)取消主数据库锁定 mysql> UNLOCK TABLES;
关键字词:Mysql主从,监控,slave,Mysql,主从同步

上一篇:PHP编译常见错误信息