Linux学习:虚拟机Centos的MySQL与主机的MySQL实现主从复制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_36553913/article/details/82289876

说明

在大学学习linux时,学习了linux中mysql与主机的主从配置,现在需要主从的mysql,发现已经忘的差不多了,就重新学习了一下如何配置,跟着教学视频将主要内容步骤在这里记录下。

正文

本次学习,Linux中使用的是Centos和MySQL的5.5.48版本,关于Linux下mysql的安装请看之前的博文《Linux下安装MySQL》,这里不再做过多的赘述。
在开始配置如何实现mysql的主从复制前,先了解下mysql主从复制的基本原理。
这里写图片描述

通过上图可以看到,主从复制主要是master将数据变化记录到二进制日志文件binlog,slave通过io线程读取master的binlog到中继日志Relay log,再通过sql线程执行Relay log的语句完成复制,所以共分为三步:

  1. master将改变记录到二进制日志文件(binary log),该过程称为二进制日志事
  2. slave将master中的binlog拷贝到它的中继日志(relay log)
  3. slave重做中继日志中的事件,将改变应用到自己的数据库中。

并且发生的一系列动作在mysql中默认是异步串行化的(Replication in MySQL features support for one-way, asynchronous replication, in which one server acts as the master, while one or more other servers act as slaves. )

在使用虚拟机中的MySQL和Windows主机下的MySQL做主从复制有两点要求:
1. MySQL大版本要一致,且以后台服务运行
2. 主机要与虚机能够互相ping通

复制的原则:
每个slave只能有一个master,并且每个slave有一个唯一的serviceId
每个master可以有多个slave

主机配置

配置步骤:
1. 修改mysql的配置文件my.ini,配置service-id=1(必须)
2. 启用二进制日志 log-bin = 本地路径/mysqlbin(必须)
3. 启用错误日志 log-err = 本地路径/mysqlerr(可选)
4. 主机读写权限 read-only=0(可选)
5. 设置不需要复制的数据库 binlog-ignore-db=数据库名称(可选)
6. 设置需要复制的数据库 binlog-do-db=数据库名称(可选)

从机配置

从机在Centos中修改MySQL的配置文件my.cnf,在root权限进行操作,切换root账户 sudo + enter
步骤:
1. 输入vim /etc/my.cnf 打开注解 service-id=2
2. 重启服务 service mysql stop/start

主机和从机都配置完成后,需要注意都必须关闭防火墙

配置完成后主机进行创建用户名密码授权
命令:GRANT REPLICATINO SLAVE ON *.* TO 'username'@'从机ip' INDENTIFIED BY 'password';
执行完毕后刷新权限 flush privileges;
查询主机的状态 show master status;

从机根据主机的授权命令及状态进行配置
命令:
CHANGE MASTER TO MASTER_HOST='主机ip',
MASTER_USER='',
MASTER_PASSWORD='',
MASTER_LOG_FILE='mysqlbin.具体数字',
MASTER_LOG_POS=具体值;

在执行命令时,如果之前设置过主从,先停止stop slave;
执行完毕后开启从服务器复制功能 start slave;

操作流程及结果

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

关于MySQL复制更多详细内容,请阅读官网教程https://dev.mysql.com/doc/refman/5.5/en/replication.html

猜你喜欢

转载自blog.csdn.net/sinat_36553913/article/details/82289876
今日推荐