0.实验环境

主机IP(Master) 192.168.61.150 centos6.6 
从机IP(Slave)   192.168.61.157 centos6.6

1.查看centos系统版本

[root@dev2017-b4d16cc2 ~]# rpm -q centos-release
centos-release-6-6.el6.centos.12.2.x86_64

检测系统是否自带安装MySQL并卸载

yum list installed | grep mysql
yum -y remove mysql-libs.x86_64

2.下载mysql安装包

由于机器没有外网权限,无法使用yum方式安装,所以需要下载软件包到本地。

wget http://mirrors.sohu.com/mysql/MySQL-5.5/MySQL-5.5.55-1.el6.x86_64.rpm-bundle.tar

3.安装并启动mysql服务

解压压缩包 tar -xf MySQL-5.5.55-1.el6.x86_64.rpm-bundle.tar
安装服务端  rpm -ivh MySQL-server-5.5.55-1.el6.x86_64.rpm
             如果出现如下报错,可以执行 yum install libaio 来解决
             libaio.so.1()(64bit) is needed by MySQL-server-5.5.55-1.el6.x86_64
             libaio.so.1(LIBAIO_0.1)(64bit) is needed by MySQL-server-5.5.55-1.el6.x86_64
             libaio.so.1(LIBAIO_0.4)(64bit) is needed by MySQL-server-5.5.55-1.el6.x86_64
  安装客户端  rpm -ivh MySQL-client-5.5.55-1.el6.x86_64.rpm

4.启动服务并修改root密码

启动服务
service mysql start
修改root密码
/usr/bin/mysqladmin -u root password 123456
登陆mysql
mysql -u root -p

5.允许root用户远程连接

登陆服务器后执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;

6.配置主从服务

同样的版本安装好slave机器。

6.1 master授权

6.1.1.向Master添加远程登录的用户

mysql>grant REPLICATION SLAVE on *.* to 'repl'@'192.168.61.157' identified by 'repl';

6.1.2.刷新授权并查看授权结果

mysql>flush privileges;
mysql>show grants for "repl"@"192.168.61.157";

6.1.3 测试Slave远程登录Master

mysql -h 192.168.61.150 -u repl -prepl(注意-p后无空格)

6.2 修改master配置文件

在my.cnf(如在/etc/下没有找到my.cnf,则去/usr/share/mysql下找到my-medium.cnf并复制到/etc/下改名为my.cnf)找到确认如下信息,如没有则手动添加:

[mysqld]

log-bin=mysql-bin # 确认开启binlog日志
binlog_format=mixed # 确认binlog日志格式为mixd混合类型
server-id=1 # 在整个主从架构内指定一个唯一的server-id
 

解决中文乱码问题

#避免中文乱码
[client]
default-character-set=utf8 [mysqld]
character-set-server=utf8

6.3修改slave配置文件

[mysqld]
log[mysqld] log-bin=mysql-bin # 确认开启binlog日志
binlog_format=mixed # 确认binlog日志格式为mixd混合类型
server-id=2 # 在整个主从架构内指定一个唯一的server-id
replicate_do_db=test0
replicate_do_db=test1

Slave其他可选配置:

 1.白名单 - 只想复制某(些)个库:
replicate_do_db=testdb #只复制testdb库(可配置多个) 2.白名单 - 只想复制某(些)个库(的所有表)
replicate_wild_do_table=testdb.% #复制testdb库的所有表(可配置多个) 3.白名单 - 只想复制某(些)个库(的部分表)
replicate_wild_do_table=testdb.t1 #复制testdb.t1表
replicate_wild_do_table=testdb.t2 #复制testdb.t2表 4.黑名单 - 想忽略对mysql数据库的复制
replicate_ignore_db=mysql #不复制mysql库(可配置多个) 5.黑名单 - 想忽略对某些库的某些表的复制
replicate_wild_ignore_table=mysql.users # 不复制mysql.users表(可配置多个) 6.如果想实现“主-->从-->从”的链式架构,因为在默认情况下,从Master复制过来的数据不会写入到Slave的binlog日志里,而是写入中继日志(localhost-relay-bin.00000x)里,所以Slave如果还需要充当其它机器的Master,就将从Master复制来的数据同时也写入Slave的本地binlog日志,添加如下配置:
log-slave-updates =1

6.4Master操作

mysql>flush logs(刷新Master日志记录)
mysql>show master status\G;(查看主机最后日志文件和最后起始点)

6.5 Slave操作

1.在Slave上执行命令,动态改变连接到Master的配置,生成或更新master.info文件:

change master to master_host="192.168.61.150",master_port=3359, master_user='repl',  master_password='repl',  master_log_file='mysql-bin.000009',  master_log_pos=107;

可选配置:

master_heartbeat_period=60 #60秒探测一次Master是否在线
master_connect_retry=10 #无法连接Master的时候重试连接的间隔时间为10秒

2.启动IO线程

负责从Master端复制 mysql-bin.00000x 日志,并把复制来的数据全部都放到 localhost-relay-bin.00000n 日志里)和SQL线程(负责读取中继日志(relay-log.info)里的信息,将 localhost-relay-bin.00000n 日志里的数据写入本地Slave。并查看Slave状态。

mysql> start slave;
mysql> show slave status\G;
出现以下语句表示配置成功
Slave_IO_Running: YES
Slave_SQL_Running: Yes

6.6 测试

在master上的test0和test1创建表或者写入数据,将会在slave中出现相同数据

6.7 解决由于master重启导致slave同步失败问题

在master端刷新binlog日志

flush logs;

刷新后的日志会+1

例如上面的 File: mysql-bin.000113 会变成 File: mysql-bin.000114

在slave端修改文件名称和位置

stop slave;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000013',MASTER_LOG_POS=107;
start slave;
show slave status\G;

centos6.6手动安装mysql5.5并配置主从同步的更多相关文章

  1. CentOS6.8手动安装MySQL5.6

    众所周知,mysql5.7推出后有很多没有填好的坑,对于老的系统和项目兼容性也存在问题,所以现在普遍的web项目还是应该跑在centos6.8+mysql5.6的环境之下,今天主要说一下mysql5. ...

  2. CentOS6.8手动安装MySQL5.6(转)

    1.安装mysql5.6依存包 2.下载编译包 wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35-linux-glibc2 ...

  3. CentOS6.8_64位手动安装MySQL5.6

    1.在CentOS6.8上安装mysql5.6 2.下载编译包 wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35-linu ...

  4. CentOS6.7上安装Mysql5.7

    CentOS6.7上安装Mysql5.7 2017年07月22日 18:27:05 阅读数:564 环境的配置总是令人作呕,所以这次表明版本条件: 首先,这是一台新机器 其次,CentOS版本如下: ...

  5. 在centos6.5中安装mysql5.7

    简介 博主最近在研究mysql的读写分离和主从复制,一台master和两台slave,三台机器在同一个局域网中,首先就就要在centos6.5中安装mysql5.7.好了,废话不多说,接下来进入正题. ...

  6. centos6.7编译安装mysql5.7.17

    centos6.7编译安装mysql5.7.17 2017-03-24 09:57:15 提示:mysql5.7.17和之前5.56以前的版本安装不一样,需要用cmake 另外,看本文档的mysql编 ...

  7. win8安装mysql5.5最后配置没有反应

    win8安装mysql5.5最后配置没有反应 win8下安装mysql5.5一路顺利,可是到最后一步配置mysql服务及登录password后.注冊服务并启动服务界面一直没有不论什么反应: 本来以为是 ...

  8. CentOS6、7安装MySQL5.7全教程

    CentOS6.7安装MySQL5.7全教程 做开发总得用到数据吧,Linux作为服务器,总得有一个数据库来存储测试用的数据,所以呢,这里附上CentOS6.7安装MySQL5.7的教程喔~ 用到的工 ...

  9. Linux安装MySql5.7及配置(yum安装)

    Linux安装MySql5.7及配置(yum安装) [root@xld ~]# rpm -q centos-release centos-release-7-7.1908.0.el7.centos.x ...

随机推荐

  1. python获取命令行传参的两种种常用方法argparse解析getopt 模块解析

    方法一:argparse解析 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # @Time: 2020/5/20 10:38 # @Author:zhan ...

  2. 我写了个IDEA开源插件,vo2dto 一键生成对象转换

    让人头疼的对象转换 头炸,po2vo.vo2do.do2dto,一堆对象属性,取出来塞进来.要不是为了 DDD 架构下的各个分层防腐,真想一竿子怼下去. 那上 BeanUtils.copyProper ...

  3. 分布式NoSQL数据库MongoDB初体验-v5.0.5

    概述 定义 MongoDB官网 https://www.mongodb.com/ 社区版最新版本5.0,其中5.2版本很快也要面世了 MongoDB GitHub源码 https://github.c ...

  4. 【LeetCode】576. Out of Boundary Paths 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 状态搜索 记忆化搜索 相似题目 参考资料 ...

  5. 【LeetCode】238. Product of Array Except Self 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 两次遍历 日期 题目地址:https://leetcode.c ...

  6. 【LeetCode】470. Implement Rand10() Using Rand7() 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  7. 【LeetCode】143. Reorder List 解题报告(Python)

    [LeetCode]143. Reorder List 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://f ...

  8. 移动端H5-iPhone安全距离适配

    安全区域? 安全区域指的是一个可视窗口范围,处于安全区域的内容不受圆角(corners).齐刘海(sensor housing).小黑条(Home Indicator)影响,如下图蓝色区域: 也就是说 ...

  9. 编写Java程序,使用日期处理类实现日期的格式化输出

    返回本章节 返回作业目录 需求说明: 按"yyyy-MM-dd"格式输入一个字符串型日期,然后输出这个日期为本年中的第几周. 实现思路: 使用SimpleDateFormat格式化 ...

  10. TortoiseGit使用ssh-keygen生成的私钥

    1.说明 使用TortoiseGit自带的PuTTY Key Generator工具, 把ssh-keygen生成的私钥转换为Putty使用的.ppk文件, 然后在拉取Git代码时, 加载对应的.pp ...