这里搭建的主从是最简单的单一主从复制(即一个Master和一个slave。没有不论什么的热机备份和多slave),该主从结构的基本拓扑图例如以下所看到的:

建立主要的主从复制能够总结为下面三个基本步骤:

  1. 配置masterserver
  2. 配置slaveserver
  3. 将slave连接到master

在配置完毕之后。我们会做一个简单的測试。測试复制是否正常。

  本文所涉及的master和slaveserver均位于同一台单机上。使用不同的port号区分,主要的环境为:Window 7 旗舰版 32位。MySQL的版本号为5.6.21 。

上一篇笔记(Windows环境下压缩版MySQL安装)中,已经介绍了压缩版mysql配置的基本过程。这里须要复制一份,并解压缩到另外一个文件夹(比如D:/Mysql_slave文件夹中)。为了区分master和slave,我们分别使用不同的port号:master使用3306。slave使用3307port号。

一、配置Master

  将server配置为Master,须要确保server有一个活动的二进制日志(binary log)和唯一的serverID(server-id,用于区分server).二进制日志中包括了Master的全部改变。而且能够在Slave上运行。

配置master的my.ini文件:

打开master文件夹下的my.ini文件,在文件里加入例如以下内容:

server-id = 1
binlog-do-db = test
log-bin=master-bin
log-bin-index=master-bin.index

当中:

(1)       server-id=1用于配置serverID,是mysql主从集群中的一个唯一区分号。全部的server都应该有自己的唯一ID,假设一个Slave连接到Master。可是和Master有同样的ID,则会产生Master和Slave ID同样的错误

(2)       binlog-do-db :指定主从复制的数据库。

(3)       log-bin字段给出了二进制日志所产生的全部文件的基本名,二进制文件能够包括多个文件。例如以下图所看到的:

(4)       log-bin-index.这事实上是指定了一个索引文件(纯文本,内容为文件列表)。该索引文件里包括全部二进制文件的列表。

假设没有为log-bin-index设置默认值。则会使用机器的hostname产生log-bin-index文件。这样。在server的hostname改变后。可能会出现无法找到索引文件,从而觉得二进制文件列表为空。导致无法正确的生成二进制bin-log。所以,推荐应该使用机器无关的名字作为bin-log-index的文件名称.

  配置完ini文件之后。须要从命令行启动mysqld服务,进入master的bin文件夹(D:.Mysql/bin)并运行下述命令(假设之前配置过mysql,运行之前请关闭已经启动的mysql服务net stop mysql):

mysqld --console

假设启动成功。cmd窗体会出现例如以下类似的内容(红色部分是关键):

  这时masterserver已经启动了.将该cmd窗体最小化不用管它。

新开一个cmd窗体,连接到master(mysql –u root -pxxx)。通过show master status能够查看master的状态。

  Slave连接Master时,会启动一个标准的client去连接Master,并请求Master将全部的修改转储给它。因此。在连接时。须要Master上有一个具有复制权限的用户。在master的控制台运行例如以下命令:

Create user reply_user;
Grant REPLICATION SLAVE On *.* to reply_user IDENTIFIED BY ‘xxxxxxxxx’;
Flush privileges;

  Replication slave权限并没有什么特别之处,仅仅是这个用户能够从Master上二进制文件的转储数据。全然能够给一个常规的用户赋予该权限,但不妨将复制Slave的用户和其它用户区分开来。这种话。假设想要禁止某些slave的链接,仅仅要删除该用户就能够了

二、配置Slave

  配置Slave的过程和配置Master的过程基本同样,不同的是,须要配置一个不同的port号,须要一个不同的server-id号。而且须要为Slave配置relay-log(中继日志)和relay-log-index(中继日志的索引文件)。打开Slave文件夹下的my.ini(D:/mysql_slave文件夹),加入例如以下内容:

#mysql slave portport = 3307#slave server idserver_id   = 2#replication databasereplicate-do-db=test#relay log filerelay-log=slave-relay-bin#relay log index filerelay-log-index=slave-relay-bin.index

改动完Slave后。相同须要通过命令启动slave的mysqld:

d:
cd mysql_slave/bin
mysqld --console

如今尽管配置好了Master和Slave。可是Master和Slave之间没有不论什么的联系。这时假设在Slave的控制台运行:show slave status;会出现提示:it is not a slave

三、Slave连接到Master

将Slave连接到Master,须要知道Master的四个主要的信息:

(1)       主机名或者IP地址,因为这里都是单机,主机的IP为127.0.0.1

(2)       Master使用的port号。3306

(3)       Master上具有REPLICATION SLAVE权限的用户

(4)       该账号的password。

在配置Master的时候已经创建了一个具有相关权限的用户。在Slave的控制台执行下面命令:

Change Master toMaster_host=’127.0.0.1’,Master_port=3306,Master_user=”reply_user”,Master_Password=”xxxx”;

运行完之后,能够通过start Slave命令启动Slave。

这时假设运行show slave status;会输出下面类似内容(注意标红部分):

如今,一个主要的mysql主从已经搭建起来了。我们接着做一些简单的測试,看看复制是否正常。測试过程例如以下:

1.  在Master上创建表:

CREATE TABLE `web_user2` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`name` varchar(30) NOT NULL DEFAULT '',`creatime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2.  插入数据

Insert into web_user2 (`name`) values ('first'),('test'),('showb'),('blood');
Select * from `web_user2`;

3.  进入Slave查看是否同步正常

Show tables;
Select * from web_user;

4.  在master的控制台上查看复制的事件-Binlog events

Flush logs;
Show binlog events;

日志比較长,这里仅仅截取了前两条:

从binlog的内容来看。复制已经配置成功了。

下一步。将会继续探索二进制日志的相关东西。

參考文献:

  1. 《高可用Mysql》
  2. http://www.cnblogs.com/zhangjun516/archive/2013/03/18/2965604.html
  3. http://blog.itpub.net/7607759/viewspace-719707/

转载于:https://www.cnblogs.com/yxwkf/p/5323800.html

《高可用MySQL》2 – 单机版MySQL主从配置相关推荐

  1. Mycat高可用解决方案一(mysql安装)

    Mycat高可用解决方案一(mysql安装) Mycat关键特性 关键特性 支持SQL92标准 支持MySQL.Oracle.DB2.SQL Server.PostgreSQL等DB的常见SQL语法 ...

  2. MySQL编译安装及主从配置

    说明:本实验配置以Cenos6.6和MySQL5.6.35为例 一.编译安装MySQL 1.避免在安装过程中出现问题,先安装系统依赖包 yum install apr autoconf automak ...

  3. PXC高可用集群(MySQL)

    1. PXC集群概述 1.1. PXC介绍 Percona XtraDB Cluster(简称PXC) 是基于Galera的MySQL高可用集群解决方案 Galera Cluster是Codershi ...

  4. 运维企业专题(11)RHCS高可用集群下MySql数据库与共享磁盘(单点写入、多点写入)的设置

    实验环境 主机名 IP 服务 server1 172.25.6.1 ricci,luci, iscsi,mysql-server server2 172.25.6.2 ricci,iscsi,mysq ...

  5. 数据库高可用和分区解决方案-MySQL 篇

    许春植(Luocs) (阿里巴巴高级数据库管理员,7年以上数据库运维管理经验,擅长MySQL.Oracle及MongoDB数据库,目前主要研究并建设MongoDB一套完整的运维体系) 编辑手记:感谢许 ...

  6. MYSQL在centos上主从配置

    主从配置理论传送门:http://blog.csdn.net/hguisu/article/details/7325124 具体配置方案: 一:MYSQL主从配置   1.1 部署环境 主(maste ...

  7. mysql 5.5数据库主从配置步骤详解

    上次给大家介绍了mysql 5.1主从搭建配置教程,这次我们来实现mysql 5.5的主从复制,其实大体上配置是差不多的,只有点细微的差别. 系统:centos 5.x 需要的软件包:mysql-5. ...

  8. Mac单机多实例Mysql(8.0.16)主从配置

    一 .MySQL多实例部署方式 1)使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便: 2)通过官方自带的mysqld_multi使用单独的配置文件 ...

  9. mysql主原理_mysql 主从配置实现原理

    MySQL 本身通过 show slave status 提供了 Seconds_Behind_Master ,用于衡量主备之间的复制延迟,但是 今天碰到了一个场景,发现 Seconds_Behind ...

  10. mysql 5.7.20主从配置_mysql-5.7.20源码安装 + 多实例 + 主从复制

    版本:MySQL-5.7.20 1.更换yum源 wget -O /etc/yum.repos.d/eprl.repo http://mirrors.aliyun.com/repo/epel-6.re ...

最新文章

  1. U-LanD:基于不确定性的视频地标检测
  2. excel最常用的八个函数_Excel中最常用的快捷键
  3. Linux中通过mkdir –p 能够创建多级目录(mkdir -p详解)
  4. Python学习系列day1-python基础
  5. 牛津英语3a_空中课堂 | 牛津英语学霸笔记3A M3U2
  6. Ubuntu 配置防火墙端口
  7. MyBatis设计模式总结
  8. SAP CDS view 单元测试框架 Test Double 介绍
  9. Locust学习总结分享
  10. Android插件化开发基础之Java动态代理(proxy)机制的简单例子
  11. c语言atof字母,C语言字符转换之atof()
  12. VS 解决方案平台和解决方案配置
  13. 【机房收费系统】---上下机
  14. java安全管理器视频_安全管理器 (Security Manager)
  15. linux ftp client安装,Linux 离线安装 FTP客户端
  16. 亚控科技的KingSCADA多个漏洞
  17. 把AI应用到实体棋盘!费米L6智能国际象棋:告别网络依赖,重归线下下棋
  18. ce修改植物大战僵尸阳光
  19. python七巧板三角形_canvas基础入门(二)绘制线条、三角形、七巧板
  20. 【Java实现链表操作】 万字肝爆 !链表的图文解析(包含链表OJ练习解析)

热门文章

  1. python写小程序-用python写个简单的小程序,编译成exe跑在win10上
  2. python主要就业方向-【数据说话】当下的Python就业前景如何
  3. python编程工资-2019年Python就业薪资怎么样?看完你就了解了
  4. python科学计算基础教程pdf下载-Python科学计算基础教程_PDF电子书
  5. python游戏最简单代码-如何利用Python开发一个简单的猜数字游戏
  6. python编程入门经典实例-总算明了python编程入门经典实例
  7. python详细安装教程linux-Linux下python3.7.0安装教程
  8. 编程爱好者学vb还是python-编程语言Java和Python对比哪个比较好
  9. 学好python能干嘛-学会Python后都能做什么?网友们的回答简直不要太厉害
  10. python工程师证书-一个程序员怎么才算精通python