您的位置:首页 > 数据库 > MySQL

MySQL 5.7搭建Master-Slave实践

2017-07-21 09:28 302 查看

背景

理解了MySQL的Master-Slave的基本原理后,就想在本地虚拟机上实践一下。开启虚拟机上的两个节点,主库Ip为192.168.x.164,从库Ip为192.168.x.170,分别安装相同版本的MySQL 。同时参考http://www.cnblogs.com/jirglt/p/3549047.html这篇文章,完成Master-Slave的实践操作。

主从参数配置

第一步,配置master

ssh连接主库192.168.x.164,编辑/etc/my.cnf文件,添加如下配置:



log_bin指定二进制变更日志,server_id是主服务器的编号,值随便定义,唯一即可。

保存后重启mysql服务:service mysqld restart

第二步,配置slave

ssh连接从库192.168.x.170,编辑/etc/my.cnf,添加如下配置



relay_log指定二进制转存日志,server_id是从服务器的编号,值随便定义,唯一即可。

保存后重启mysql服务:service mysqld restart

注意事项:在编辑Master-Slave的相关配置时,注意key=value,中间不能有空格,否则会出现MySQL服务器启动失败的情况,查看相关日志说是log_bin参数不识别。

主库Master操作

第一步,创建从库登录帐号并授权



注意:利用MySQL创建用户和grant授权语法完成主库端操作。

create user ‘username’@’host’ identified by ‘password’;

grant replication slave on ‘username’@’host’

语句中的host是从库IP(192.168.x.170),即帐号在从库上登录主库时用的帐号密码信息。

第二步,查看主库状态,记录主库的文件信息。



从库Slave操作

第一步,创建并开启从库

登录从库的mysql,执行如下语句:



注意:语句中的master_log_file就是主库的show master status中的file文件,这里执行多次了,所以截图不一致。创建从库时关联的主库的文件是mysql-bin-000002.

第三步,查看从库状态



主从库线程列表

创建从库并启动后,主从库两边均会开启一个IO线程进行日志同步,从库还会有一个SQL线程进行数据同步,此外各自有一个主线程。

主库总共两个线程,查看线程情况如下:



从库总共三个线程,查看线程情况如下:



数据同步

第一步,登录主库MySQL,新建数据库,新建数据表,并插入一条记录。

第二步,从库的show slave status后显示的Slave_IO_Running和Slave_SQL_Running两个状态均为Yes,继而会自动完成数据同步操作。登录从库MySQL,查询数据库信息,可以看到主库最新数据已经同步到了从库了。

启示录

首先,当我看到从库这边数据自动完成同步,感觉好神奇啊。原谅我对MySQL的使用还停留在简单的单机层面上,最近买了本《高性能MySQL》,补补基础知识吧。

其次,虽然能百度到的文章很多,但是真正实践下来还是会碰到一些问题的,记录一下,算是实践过程的证据吧。虽然整理过程也挺耗时的,从8点开始整理,到成文发布,耗时一个多小时。等将来再回头看的时候,就会轻松很多了。

最后,实践完成后,再看同步的理论知识,清晰多了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql master slave