《高可用MySQL》2 – 单机版MySQL主从配置
建立主要的主从复制能够总结为下面三个基本步骤:
- 配置masterserver
- 配置slaveserver
- 将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的内容来看。复制已经配置成功了。
下一步。将会继续探索二进制日志的相关东西。
參考文献:
- 《高可用Mysql》
- http://www.cnblogs.com/zhangjun516/archive/2013/03/18/2965604.html
- http://blog.itpub.net/7607759/viewspace-719707/
转载于:https://www.cnblogs.com/yxwkf/p/5323800.html
《高可用MySQL》2 – 单机版MySQL主从配置相关推荐
- Mycat高可用解决方案一(mysql安装)
Mycat高可用解决方案一(mysql安装) Mycat关键特性 关键特性 支持SQL92标准 支持MySQL.Oracle.DB2.SQL Server.PostgreSQL等DB的常见SQL语法 ...
- MySQL编译安装及主从配置
说明:本实验配置以Cenos6.6和MySQL5.6.35为例 一.编译安装MySQL 1.避免在安装过程中出现问题,先安装系统依赖包 yum install apr autoconf automak ...
- PXC高可用集群(MySQL)
1. PXC集群概述 1.1. PXC介绍 Percona XtraDB Cluster(简称PXC) 是基于Galera的MySQL高可用集群解决方案 Galera Cluster是Codershi ...
- 运维企业专题(11)RHCS高可用集群下MySql数据库与共享磁盘(单点写入、多点写入)的设置
实验环境 主机名 IP 服务 server1 172.25.6.1 ricci,luci, iscsi,mysql-server server2 172.25.6.2 ricci,iscsi,mysq ...
- 数据库高可用和分区解决方案-MySQL 篇
许春植(Luocs) (阿里巴巴高级数据库管理员,7年以上数据库运维管理经验,擅长MySQL.Oracle及MongoDB数据库,目前主要研究并建设MongoDB一套完整的运维体系) 编辑手记:感谢许 ...
- MYSQL在centos上主从配置
主从配置理论传送门:http://blog.csdn.net/hguisu/article/details/7325124 具体配置方案: 一:MYSQL主从配置 1.1 部署环境 主(maste ...
- mysql 5.5数据库主从配置步骤详解
上次给大家介绍了mysql 5.1主从搭建配置教程,这次我们来实现mysql 5.5的主从复制,其实大体上配置是差不多的,只有点细微的差别. 系统:centos 5.x 需要的软件包:mysql-5. ...
- Mac单机多实例Mysql(8.0.16)主从配置
一 .MySQL多实例部署方式 1)使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便: 2)通过官方自带的mysqld_multi使用单独的配置文件 ...
- mysql主原理_mysql 主从配置实现原理
MySQL 本身通过 show slave status 提供了 Seconds_Behind_Master ,用于衡量主备之间的复制延迟,但是 今天碰到了一个场景,发现 Seconds_Behind ...
- 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 ...
最新文章
- U-LanD:基于不确定性的视频地标检测
- excel最常用的八个函数_Excel中最常用的快捷键
- Linux中通过mkdir –p 能够创建多级目录(mkdir -p详解)
- Python学习系列day1-python基础
- 牛津英语3a_空中课堂 | 牛津英语学霸笔记3A M3U2
- Ubuntu 配置防火墙端口
- MyBatis设计模式总结
- SAP CDS view 单元测试框架 Test Double 介绍
- Locust学习总结分享
- Android插件化开发基础之Java动态代理(proxy)机制的简单例子
- c语言atof字母,C语言字符转换之atof()
- VS 解决方案平台和解决方案配置
- 【机房收费系统】---上下机
- java安全管理器视频_安全管理器 (Security Manager)
- linux ftp client安装,Linux 离线安装 FTP客户端
- 亚控科技的KingSCADA多个漏洞
- 把AI应用到实体棋盘!费米L6智能国际象棋:告别网络依赖,重归线下下棋
- ce修改植物大战僵尸阳光
- python七巧板三角形_canvas基础入门(二)绘制线条、三角形、七巧板
- 【Java实现链表操作】 万字肝爆 !链表的图文解析(包含链表OJ练习解析)
热门文章
- python写小程序-用python写个简单的小程序,编译成exe跑在win10上
- python主要就业方向-【数据说话】当下的Python就业前景如何
- python编程工资-2019年Python就业薪资怎么样?看完你就了解了
- python科学计算基础教程pdf下载-Python科学计算基础教程_PDF电子书
- python游戏最简单代码-如何利用Python开发一个简单的猜数字游戏
- python编程入门经典实例-总算明了python编程入门经典实例
- python详细安装教程linux-Linux下python3.7.0安装教程
- 编程爱好者学vb还是python-编程语言Java和Python对比哪个比较好
- 学好python能干嘛-学会Python后都能做什么?网友们的回答简直不要太厉害
- python工程师证书-一个程序员怎么才算精通python