MySQL 5.7搭建Master-Slave实践
背景理解了MySQL的Master-Slave的基本原理后,就想在本地虚拟机上实践一下。开启虚拟机上的两个节点,主库Ip为192.168.x.164,从库Ip为192.168.x.170,分别安装相同版本的MySQL 。同时参考http://www.cnblogs.com/jirglt/p/3549047.html这篇文章,完成Master-Slave的实践操作。主从参数配置第一步,配置maste
背景
理解了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点开始整理,到成文发布,耗时一个多小时。等将来再回头看的时候,就会轻松很多了。
最后,实践完成后,再看同步的理论知识,清晰多了。
更多推荐
所有评论(0)