在实际生产环境中,单台mysql数据库是完全不能满足实际需求,无论安全,高可用性,高并发等各个方面的要求。mysql主从复制是满足这些要求的基础,主要用于实时备份,高可用,读写分离的场景

原理

  • master服务器将数据的改变记录二进制日志,当master上的数据发生改变时,则将其改变写入二进制日志中。
  • salve服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/OThread请求master二进制事件
  • 同时主节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,从节点保存至中继日志。
  • 从节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,使得其数据和主节点的保持一致。
  • 最后I/OThread和SQLThread将进入睡眠状态,等待下一次被唤醒。

过程

基本要求

  • 两台服务器
  • 两台服务器版本一致(主节点低于从节点)
  • 两台服务器防火墙关闭
  • 双方数据库用户的用户,要具有远程访问的权限【参考远程】

主服务器

修改主服务器的mysql配置文件 (wind:my.ini,linux(my.cnf)),放在mysqld下面

[mysqld]
有重复的选项,将设置的字段保证不会被覆盖
#mysql唯一id
server-id = 1
#二进制日志文件,此项为必填项,否则不能同步数据;
log-bin = "mysql-bin"
#指定二进制错误文件
log-error="mysql-error"
#需要同步的数据库,如果需要同步多个数据库;
binlog-do-db = 库名
#binlog-do-db = 库名
#binlog-do-db = 库名
#不需要同步的数据库
binlog-ignore-db = mysql

给从数据库授权

8.0版本以下

GRANT REPLICATION SLAVE ON *.* to 'root'@'172.16.168.142' identified     by '123456';

8.0版本

CREATE USER 'root'@'192.168.43.152' IDENTIFIED WITH
mysql_native_password BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.43.152';

最后几步

#刷新权限
flush privileges;
#重启服务
service mysql restart;重启 (linux上: /etc/init.d/mysql restart)
#查询二进制信息
show master status 查询主服务器二进制信息

从服务器配置

[mysqld]
server-id=2    #默认是1改成2
log-bin="mysql-bin"    #这行本身有
replicate-do-db=uek_demo    #需要同步的数据库
replicate-ignore-db=mysql    #不同步系统数据库
read_only     #设只读权限,一般不写

重启mysql服务

执行同步sql语句

[mysqld]
change master to
master_host='主机域名'
master_user='root'
master_password='密码'
master_log_first='主服务器的二进制地址'
master_log_pos='主服务器的pos'#实例
change master to master_host='192.168.43.192',master_user='root',master_password='lz1022',master_log_file='mysql-bin.000008',master_log_pos=154;

开启同步

start slave

判断是否成功

show slave status\G;
i/o    sql值是否为yes

没有表/库,手动创建***

其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常

数据库学习--主从复制相关推荐

  1. sqlserver date类型和字符串比较_基于SQL Server数据库搭建主从复制实现读写分离实战演练...

    一.课程介绍 读写分离(主从同步)从字面意思就可以理解,就是把对数据库的读操作和写操作分离开.读写分离在网站发展初期可以一定程度上缓解读写并发时产生锁的问题,将读写压力分担到多台服务器上.读写分离的基 ...

  2. 【数据库学习】关系数据库总结

    1,概念 1)数据库 数据库是长期存储在计算机内.有组织的.可共享的大量数据的集合. 数据库中存储的是数据及数据之间的关系. 正常情况读写文件系统比数据库快一到两个数据级: 数据库的查询,大量并发的时 ...

  3. MySQL数据库学习导航

    MySQL数据库学习导航 MySQL数据库基础知识 MySQL数据库备份 MySQL数据在线备份 MySQL数据库基础知识 MySQL数据库介绍 MySQL体系结构 MySQL语句 - sql语句 M ...

  4. 数据库学习笔记(1)

    数据库学习笔记(1) 文章目录 数据库学习笔记(1) @[toc] DB 基本概念 连接数据库的三要素 元数据 mongoose 查询符合对象数组中某个对象的值 redis 是什么 存储的数据类型 r ...

  5. linux数据库创建score表,MySQL数据库学习笔记

    MySQL数据库学习笔记phpma (实验环境:Redhat9.0,MySQL3.23.54) 纲要: 一,连接MySQL phpma 二,MySQL管理与授权 三,数据库简单操作 四, 数据库备份 ...

  6. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  7. 数据库学习day_01:SQL的发展和数据库操作相关sql语句

    1.数据库 学习数据库主要学习的就是如何对数据进行增删改查操作. 增加(插入数据) 删除数据 修改数据 查询数据 为什么使用数据库软件? 之前在webserver时通过IO技术已经操作过数据,其实这部 ...

  8. mysql选定数据库_mysql数据库学习――2,数据库的选定,创建,删除和变更_MySQL...

    bitsCN.com mysql数据库学习--2,数据库的选定,创建,删除和变更 数据库选定,数据库选定后依然可以使用其他数据库中的数据表,只要指定[数据库.数据表]即可 use db_namesel ...

  9. mysql 数据库学习(触发器)

    引用:http://bbs.mysql.cn/thread-9135-1-2.html 引用:21. 触发程序 create table a (sa int); create table b (sb ...

最新文章

  1. 转:Linux查看CPU信息、机器型号等硬件信
  2. S8 Linux磁盘与文件系统管理命令
  3. xtrbackup更换数据库_XtraBackup 备份还原 MySQL 数据库
  4. 去掉Mybatis Generator生成的一堆 example
  5. OpenShift 4 - 用自定义的TLS证书对访问OpenShift的用户认证身份
  6. React Native 系列(三) -- 项目结构介绍
  7. 我的oh my zsh主题
  8. uni-app中配置微博分享相关信息
  9. express比php好用,[译]Node.js 框架比较: Express vs. Koa vs. Hapi
  10. 使用SpEL表达式来获取SpringData Jpa在更新数据时传递的对象参数的属性
  11. .net RPC框架选型(一)
  12. TensorFlow 中的 LRNOp
  13. linux中什么是资源管理器,什么叫资源管理器
  14. 如何将图一-1变成图1-1(word题注的大写变成小写)
  15. 小心!这些开车姿势当心瘫痪,广大车友必备驾驶知识
  16. HBase、Kudu 和 ClickHouse 全视角对比
  17. oracle sql 获取当前时间,Oracle 在SQL语句中如何获取系统当前时间并进行操作
  18. 二分图最大权匹配问题KM算法讲解 HDU 2255 奔小康赚大钱
  19. 什么软件可以测试自己王者本命英雄,王者荣耀本命英雄测试入口在哪2021
  20. eliminate什么意思_eliminate是什么意思_ eliminate的翻译_音标_读音_用法_例句_爱词霸在线词典...

热门文章

  1. 项目管理与项目组合管理的不同
  2. prometheus监控redis(无metric接口)
  3. DELL R730 iDRAC8远程控制卡使用
  4. 超实用的shell脚本--一键获取进程所有信息
  5. HP服务器集成 iLO 端口的配置
  6. zabbix使用ICMP ping监控网络状态
  7. SpringBoot, 启动类,使用「SpringBootApplication」标注
  8. 函数专题:sum、row_number、count、rank\dense_rank over
  9. 控制上网!!!(版本之1.1) 当前时间从网络取得。
  10. 使用四元数解决万向节锁(Gimbal Lock)问题