MySQL主从复制可实现数据的多处自动备份。不仅可以加强数据的安全性,通过实现读写分离还能提升数据库的负载性能。

实现原理:

MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。

步骤

主服务器:

  • 开启二进制日志
  • 配置唯一的server-id
  • 获得master二进制日志文件名及位置
  • 创建一个用于slave和master通信的用户账号

    从服务器:

  • 配置唯一的server-id
  • 使用master分配的用户账号读取master二进制日志
  • 启用slave服务

具体实现过程如下:
一、主数据库master修改:
1.修改mysql配置

找到主数据库的配置文件my.cnf(或者my.ini),我的在/etc/mysql/my.cnf,在[mysqld]部分插入如下两行:

[mysqld]
log_bin=mysql-bin #开启二进制日志,mysql-bin是二进制日志文件的名称,可自定义命名。
server-id=1 #设置server-id

2.重启mysql,创建用于同步的用户账号

打开mysql会话shell>mysql -hlocalhost -uname -ppassword

创建用户并授权:用户:repl 密码:slavepass

mysql> CREATE USER 'repl'@'123.57.44.85' IDENTIFIED BY 'slavepass';#创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'123.57.44.85';#分配权限
mysql>flush privileges;   #刷新权限

3.查看master状态,记录二进制文件名(mysql-bin.000003)和位置(73):

mysql > SHOW MASTER STATUS;
File Position Binlog_Do_DB Binlog_Ignore_DB Executed_Gtid_Set
mysql-bin.000004 155    

二、从服务器slave修改:
1.修改mysql配置
同样找到my.cnf配置文件,添加server-id

[mysqld]
server-id=2 #设置server-id,必须唯一

2.重启mysql,打开mysql会话,执行同步SQL语句(需要主服务器主机名,登陆凭据,二进制文件的名称和位置):

3.启动slave同步进程:

mysql> CHANGE MASTER TO->     MASTER_HOST='192.168.0.110',->     MASTER_USER='repl',->     MASTER_PASSWORD='slavepass',->     MASTER_LOG_FILE='mysql-bin.000003',->     MASTER_LOG_POS=73;
mysql>start slave;

4.查看slave状态:

mysql> show slave statusG;
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 182.92.172.80Master_User: rep1Master_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000013Read_Master_Log_Pos: 11662Relay_Log_File: mysqld-relay-bin.000022Relay_Log_Pos: 11765Relay_Master_Log_File: mysql-bin.000013Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: ...

当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了。

mysql 8.X主从复制相关推荐

  1. Maria数据库怎么复制到mysql_maria(mysql)的主从复制

    一.mariadb的基本操作 1.远程连接 mysql -uroot -p -h 127.0.0.1mysql-uroot -p -h 192.168.226.128 2.赋予远程连接的权限 gran ...

  2. 运维工程师必备之MySQL数据的主从复制、半同步复制和主主复制详解

    一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...

  3. mysql主从切换gtid不一致_解决mysql使用GTID主从复制错误问题

    解决mysql使用GTID主从复制错误问题 做MySQL主从的话肯定会遇到很多同步上的问题, 大多数都是由于机器宕机,重启,或者是主键冲突等引起的从服务器停止工作, 这里专门收集类似问题并提供整理解决 ...

  4. mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

    mysql的innodb如何定位锁问题: 在使用 show engine innodb status检查引擎状态时,发现了死锁问题 在5.5中,information_schema 库中增加了三个关于 ...

  5. mysql的innodb如何定位锁问题_mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?...

    mysql的innodb如何定位锁问题: 在使用 show engine innodb status检查引擎状态时,发现了死锁问题 在5.5中,information_schema 库中增加了三个关于 ...

  6. 如何在MySQL中设置主从复制

    原作者:Etel Sverdlov 转载&翻译:https://www.digitalocean.com/community/tutorials/how-to-set-up-master-sl ...

  7. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变...

    [Mysql主从复制] 解决的问题 数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了. 负载均 ...

  8. Mysql高级之主从复制

    原文:Mysql高级之主从复制 主从复制不就是多台服务器嘛!,一个改变另一个也改变啦,内容其实都一样! 原理: 对数据库进行操作会生成一个文件,binlog(二进制文件),从服务器配置relaylog ...

  9. MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!

    MySQL 5.7主从复制从零开始设置及全面详解--实现多线程并行同步,解决主从复制延迟问题! 参考文章: (1)MySQL 5.7主从复制从零开始设置及全面详解--实现多线程并行同步,解决主从复制延 ...

  10. 菜鸟学Linux 第095篇笔记 MySQL 5.6主从复制

    菜鸟学Linux 第095篇笔记 MySQL 5.6主从复制 内容总览 主从服务器复制过滤 MySQL 5.6 简单主从模式配置步骤 mysql-proxy 主从服务器复制过滤 主服务器配置 基于数据 ...

最新文章

  1. AtCoder AGC019E Shuffle and Swap (DP、FFT、多项式求逆、多项式快速幂)
  2. PostgreSQL学习笔记10之性能提升技巧
  3. java 计算协方差_Java的深度:通过协方差暴露的API泄漏
  4. poj3187 穷竭搜索 挑战程序设计大赛
  5. ansible vim_Vim插件,使用Ansible自动化部署策略,Pelican入门,Linux,Joplin,Python以及更多新鲜读物
  6. fastjson 判断value是对象还是数组
  7. linux 网络定时断链,客户端连接linux经常间隔性断开链接
  8. 课程设计方案模板MySQL_MYSQL数据库课程设计.doc
  9. 袖珍计算机英语手册,英语袖珍迷你系列__中考英语速记手册__刘国婷.pdf
  10. wordpres报错sfile_exists() [function.file-exists]: File name is longer than the maximum allowed
  11. tableau连接Mysql出现的密码验证 cannot be loaded
  12. css实现两列容器等高布局,CSS等高布局的实现方法
  13. 上海市政府颁布智能汽车牌照,蔚来汽车成首批获此资格企业
  14. 联想电脑关闭HotKey (热键模式),使用快捷功能时才需按Fn
  15. 产品商业需求文档_【器】我的产品需求文档心法
  16. 嗨格式Heic图片转换器v1.0.13.1436官方版
  17. selenium 远程调用浏览器
  18. WPF 在image控件用鼠标拖拽出矩形
  19. /usr/bin/ld: 找不到 -lgcc_s怎么办?
  20. mysql记录锁、间隙锁、临键锁

热门文章

  1. 使用百度echarts仿雪球分时图(二)
  2. HDU1251 统计难题 trie树
  3. Ceph源码解析:PG peering
  4. Recommended Browsers for Oracle E-Business Suite 11i/R12
  5. 大屏scroll滚动轴样式
  6. Windows PowerShell和命令行的区别
  7. WinForm AutoComplete 输入提示、自动补全
  8. 新手干货:Vue - 常用指令
  9. jQuery设置iframe的高度根据页面内容自适应
  10. jQuery实现简单的百分比进度条