环境说明

centos7.3、MySQL5.7

前言

MySQL安装参考之前的文章https://www.jianshu.com/p/452aa99c7476有讲解。

基本概念

MySQL 内建的复制功能是构建大型,高性能应用程序的基础。将 MySQL 的 数亿分布到到多个系统上去,这种分布的机制,是通过将 MySQL 的某一台主机的数据复制到其它主机( Slave )上,并重新执行一遍来实现的。复制过程中一个服务器充当服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置,从服务器接收从那时起发生的任何更新,然后封锁等等主服务器通知新的更新。请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对服务器上的表所进行的更新之间的冲突

主从复制实现

一、修改主(master)服务器

如果是按照我写的文章安装的MySQL,那么my.cnf配置文件在/etc/目录下。如果不在,可以通过whereis命令搜索下

在my.cnf配置文件下添加如下配置

server_id=1 #指定MySQL的id

log-bin=mysql-bin #开启二进制日志文件

二、创建复制账号

在主服务器中执行该命令(这里允许了所有的地址访问,建议设置成从服务器的地址)

GRANT REPLICATION SLAVE ON *.* to 'replication'@'%' identified by 'Abc123...';

三、修改从(slave)服务器

server_id=2

log-bin=mysql-bin

binlog_do_db=db_test#表示要同步的数据库

说明:

binlog-ignore-db=test 表示不同步 test 数据库

binlog_do_db=db_test#表示要同步的数据库

四、重启MySQL

主服务器和从服务器都重启

service mysqld restart

五、查看主服务器状态

show master status

结果如下:

这里有些信息需要记录下来,在配置从服务器时候需要用到

六、配置从服务器(连接 Master 服务器)

change master to master_host='192.168.74.129',master_user='replication',master_password='Abc123...',master_log_file='mysql-bin.000001',master_log_pos=2041;

master_host是主服务器的ip

master_port=3306(这里没有配置,默认3306)

master_user:Master 服务器授权用户,也就是 Master 前面创建的那个用户

master_password:Master 服务器授权用户对应的密码

master_log_file:Master binlog 文件名

master_log_pos:Master binlog 文件中的 Postion 值

关于position值,这里做一个说明:如果主服务器已经是有很多数据了的,那就先需要备份主服务器的数据到从服务器中,然后再使用命令show master status记录需要开始同步的位置。

七、开始复制

在从服务器中执行

start slave

停止的命令是:stop slave;

八、查看从服务器状态

show slave status\G;

上图圈起来的两个结果为yes表示主从复制配置成功了。

如果配置失败,可以去MySQL的日志文件中查看失败信息,也可以通过上述命令查看一个简要的错误信息:

这是我刚刚配置主从服务器时报的错,主要原因是MySQL服务器的server的UUID冲突了,原因是我的从服务器是从主服务器上复制过去的。到/var/lib/mysql/auto.cnf上修改即可。

验证主从结果

现在的状态:

下面新建一个表,看看是否可以同步过去:

查看从服务器

可以看到已经同步过去了同步过去

mysql 复制功能_MySQL实现主从复制功能相关推荐

  1. mysql的主从复制功能_Mysql的主从复制功能

    本次演示Mysql的主从复制及主从切换功能. 本次演示基于条件:两台虚机服务器,都安装了mysql-5.6.26,并已启动. 演示环境: 操作系统版本:linux-6.6-x86_64 数据库版本:m ...

  2. mariadb mysql同步_MySQL(Mariadb)主从同步基础

    一.准备阶段 两台linux虚拟机centos7版本,都安装了mariadb 5.5.6 进行主从同步配置: 首先防火墙要开放3306端口, 主库服务器ip:192.168.211.100 从库服务器 ...

  3. mysql数据库复制功能配置,最详细的mysql数据库主从复制功能配置教程(docker版本)...

    docker安装mysql # 主服务器 docker run --name master-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d my ...

  4. mysql 复制_MySQL的复制功能

    什么是复制功能? MySQL 的复制功能是将备份的数据移动到其他服务器的功能,通过简单的设定即可使用 主→从(master ->slave)架构. 主服务器上发生数据变更,变更内容传送到从服务器 ...

  5. linux mysql进阶_mysql进阶学习二之搭建主从

    前面说了主从复制的原理,现在我们搭建主从结构 1. 提前准备 我准备了两台主机,主节点是远程的centos7,从节点是本机windows 主从复制的原理在上一篇已经说了:主节点中mysql创建一个用户 ...

  6. 5.5.35 - mysql 同步_MySQL 5.6.35主从同步配置案例

    MySQL 5.6主从同步配置案例分享 本文环境 主库:Redhat 6.5 x64 192.168.1.180 mysql-5.6.35 备库:Redhat 6.5 x64 192.168.1.18 ...

  7. mysql主从切换脚本_mysql+keepalived主从切换脚本 转

    MySQL架构为master-slave(主从),master故障自动切换到slave上.当然也可以设置为双master,但这里有个弊端:就是当主的压力很大时,从上延时很大,比如落后2000秒,此时主 ...

  8. mysql 提交_MySQL 事务提交过程

    开发老大要求通过binlog查询一条被修改的数据,数据被查出后问我,有没有可能binlog中不会记录,回答不会,因为数据被修改,若失败直接回滚,不会在binlog中记录,此刻一个朋友用了洪荒之力告诉我 ...

  9. mysql 5.6 gtid 主从_MySQL5.6基于GTID的主从复制

    一.GTID简介 MySQL 5.6 的新特性之一,是加入了全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力. 什么是GTID? 官方文档:http://dev.mysq ...

最新文章

  1. js中的attribute详解
  2. 3DSlicer24:Module-Create Scripted
  3. C语言创建map,遍历map
  4. PS教程第十五课:图层是最基本的要求
  5. Maven Assembly Plugin - 如何将Maven工程打成一个可执行jar包
  6. Wordpress 数据库查询错误 Call to a member function get_results() on null
  7. android gradle NDK简介
  8. 计算机学院实验室安全管理办法,江苏大学计算机学院实验室安全管理制度
  9. SceneCAD: Predicting Object Alignmentsand Layouts in RGB-D Scans
  10. 动态生成鼠标指针--可以利用已有的图片生成鼠标指针--C#代码
  11. 关于html和jsp乱码问题
  12. python可以手眼定标吗_机器人无标定手眼协调
  13. linux管理员最大密码长度,【最新】电信光猫超级管理员账户密码获取方法
  14. Mac苹果电脑桌面上的文件突然没了怎么办
  15. 浅谈网页设计中的构图
  16. 数组里的字符串转换成数字或者把数字转换成字符串
  17. PlatoFarm几大创新经济模型,给予当下元宇宙市场的启发
  18. DO447管理任务执行--控制任务执行
  19. php正则匹配中文、汉字
  20. 使用Xilinx约束

热门文章

  1. Android开发工具大全【转】
  2. 52 - 算法 - 数据结构 vector
  3. Java面向对象之构造方法、构造方法重载
  4. usb 系统消息_别让 USB 传输速度影响 Android 开发效率
  5. 小米无线网卡驱动_小米air笔记本蓝屏故障排除,一个匪夷所思的故障原因。
  6. python随机画圆_python生成随机图形验证码详解
  7. php双引号表示什么,PHP中的单引号和双引号字符串有什么区别?
  8. python透明图处理_python – 强制matplotlib图的背景是透明的
  9. hive动态分区shell_hive-shell批量操作分区文件
  10. c++svd算法_AI算法工程师面试6