Mysql主从复制完美配置,So easy!5分钟搞定!

Mysql版本5.7操作系统版本centos7.3事先准备两台机器(或者虚拟机),分别安装好mysql—请确保都是全新安装,并且没有做过任何修改配置和建库建表等操作。最终实现主从复制(由Master写入,自动...

Mysql主从复制完美配置,So easy!5分钟搞定!


Mysql版本5.7

操作系统版本centos7.3


事先准备两台机器(或者虚拟机),分别安装好mysql—请确保都是全新安装,并且没有做过任何修改配置和建库建表等操作。

最终实现主从复制(由Master写入,自动同步到Slave中)效果如下:

A:192.168.1.1 主Mysql—Master

B:192.168.1.2 从Mysql—Slave


实施:

1,修改配置文件

假定两台Mysql的配置文件路径都是 /etc/my.cnf

修改主Mysql(Master):

vi /etc/my.cnf

log-bin=mysql-bin //启用二进制日志

server-id=1 //服务器唯一ID,默认是1,为方便辨认取IP最后一段

修改从Mysql(Slave):

vi /etc/my.cnf

log-bin=mysql-bin

server-id=2

2,重启两个mysql,使配置生效

3,在主Mysql上建立mysync帐户并授权为Slave:

mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'xxxx';

mysync是授权的用户名。

xxxx是密码

%表示来自所有ip的mysync账户的slave连接请求都可以被允许,实际上为了安全我们一般会指定特定的ip,比如本例子里用只允许192.168.1.2访问,用192.168.1.2替换%即可。

4,查询主Mysql状态,binlog当前日志信息确认

mysql>show master status;

Mysql主从复制完美配置,So easy!5分钟搞定!

记住File和Position的值,后面要用。

主从复制的原理是Master的binlog日志中记录所有mysql信息修改,然后Slave通过分析Master的binlog日志获得要同步的内容,所以这里要查询的信息就是——要从哪个File同步,并且从哪个Position开始同步,明白了吧。

请注意,到这里以后,请不要再对Master做任何配置或者数据的修改,直到Slave配置完成!不然会出现信息同步错误。

5,配置从Mysql

Mysql主从复制完美配置,So easy!5分钟搞定!

master_log_file的内容请参考上面4中的File值

master_log_pos参考上面4中Position值

master_user是Master中配置的mysync账户

master_password是mysync账户的密码

6,启动从Mysql的slave同步

root>start slave;

7,检查从mysql的状态

Slave_IO_Running: Yes //此状态必须YES

Slave_SQL_Running: Yes //此状态必须YES

如果两个中有一个不是YES,说明配置失败。

以上是配置过程!


实现主从复制以后下一步自然是使用它,下期我会补一篇Atlas中间件的配置说明。

Atlas是360开源的一个Mysql代理中间件,可以很方便的实现:

  • 读写分离

  • 从库负载均衡

  • 自动分表

  • IP过滤

  • SQL语句黑白名单

  • DBA可平滑上下线DB

  • 自动摘除宕机的DB

是不是很牛的样子!下一篇见!

高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据学习交流群号为:521479582

注:加群要求

1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。

2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。

3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。

4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。

5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

6.小号或者小白之类加群一律不给过,谢谢。

相关推荐