我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL5.6 主从复制(简单版)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL5.6 主从复制(简单版)

几种常见的Replication拓扑结构:

1.单master----多slave

slave之间互不通信,只和master通信

适用于读压力比较大的应用场景,将读操作分布到不同的slave中,减小master压力


2.多master----单slave 

    mysql貌似暂不支持,个人认为通过slave多实例实现


3.主动模式的Master----Master

当前master是另一master的slave

问题:同时更新一个操作产生冲突


4.主动-被动模式的Master----Master

只能有一个可读


5.级联复制的Master----Slaves----Slaves

结构1中的replication导致slave连上master的线程过多,replication的压力过大

级联可以一定程度上缓解master的压力,但是需要设置log_slave_updates=1。

每级slave是下级slave的master,所有重做中继日志同样需要写入binlog中


下面安装的是最基本的单slave单master

第一步:准备工作

        操作系统:Centos7.1

        数据库:mysql-5.6.30

        主host:172.17.220.145

        从host:172.17.220.220


第二步:设置防火墙

        Centos7.1默认防火墙为firewalld,需要通过yum安装iptables-service

        分别在主从服务器中:

                vi /etc/sysconfig/iptables

                在“-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT”后增加

                -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

                systemctl start iptables.service 


第三步:修改主数据库的配置文件my.cnf 

        server-id=145(主服务器的ID值,建议为ip最后一段)

        log_bin = /opt/mysql/data1/mysql-bin.log(二进制日志)

        log_slave_updates = 0 (0表示slave将复制事件写进自己的二进制日志)

        binlog_format=MIXED  (二进制日志类型)


第四步:修改从数据库的配置文件my.cnf 

        server-id=224

        log_bin = /opt/mysql/data1/mysql-bin.log(如果该slave为其他slave的master,必须开启二进制)

        #relay_log=

        read_only=1 (防止从库修改数据,从库只读)

        log_slave_updates = 1


第五步:创建master用户

        登录主数据库

        mysql> GRANT REPLICATION SLAVE ON *.* TO 'mypri'@'172.17.220.145' IDENTIFIED BY ‘123456’;


第六步:重启主从数据库

        service mysql restart


第七步:假如主库存在数据

        5.1 先对主库锁表,不让数据再进行写入

               mysql> flush tables with read lock;

        5.2 主库 mysqldump -uroot -p --all-databases >all.sql(导出所有数据库)

        5.3 若从库不存在数据,则导入all.sql到从库

             mysql -uroot -p <all.sql

            从库本身存在数据,先备份从库,再删除从库中的数据,仅保留mysql、information_schema、performance_schema

        5.4 主数据库 unlock table

        5.5 主数据库 show master status; 获取master_log_file与master_log_pos


第八步: 从服务器slave启动

        change master to master_host='172.17.220.145',

                master_user='mypri',

                master_password='123456',

                master_log_file='mysql-bin.000021',(show master status获取)

                master_log_pos=1212, (show master status获取)

                master_connect_retry=60;(超时重连)


        启动slave:start slave;

        show slave status\G  验证是否成功

        成功与否主要看:

                   Slave_IO_Running=Yes

                   Slave_SQL_Running=Yes

错误信息:

        1. slave have equal MySQL Server UUIDs

            这个问题的主要原因是本人进行了虚拟机复制,导致主从数据库的server_id或server_uuid一致

            查看server_id:show variables like 'server_id';

            查看server_uuid:show variables like 'server_uuid';

            server_id一致,修改my.cnf文件

            server_uuid一致

                    删除从库中的$data_path/data/auto.cnf

            然后重启从库

查看主库上的几个重要参数:

            show variables like '%autocommit%';  自动提交是否开启

            show variables like '%innodb_flush_method%'; innodb引擎的表刷新方式 O_DIRECT

            show variables like '%sync_binlog%'; 

                    sync_binlog=0:不主动刷新二进制日志文件的数据到磁盘上,由操作系统决定

                    sync_binlog=N:向二进制日志文件写入N条SQL或N个事务后,二进制日志文件的数据刷新到磁盘上;


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL5.6 主从复制(简单版)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

postgresql12 主从复制

前言 PostgreSQL 12 的一个重要变化是 recovery.conf 配置文件中的参数合并到 postgresql.conf,recovery.conf 不再使用 ; 参见:https://www.postgresql.org/docs/releas
postgresql12 主从复制
2021-02-24

mysql主从复制

两台mysql版本号为5.7以上 主库配置文件设置(注意设置在[mysqld]项中)主库的ip地址为:192.168.1.1server-id=1 #唯一id,主库设置1log-bin=mysql-bin #日志记录sync-binlog=1bin

	mysql主从复制
2018-10-04

mysql主从复制

一.主从复制简介2015年5月28日11时,12小时后恢复,损失:平均每小时106.48W$1)高可用2)辅助备份3)分担负载复制是 MySQL 的一项功能,允许服务器将更改从一个实例复制到另一个实例。1)主服务器将所有数据和结构更改记录到二进制日志中。2)从
mysql主从复制
2019-04-07

redis 主从复制

redis 主从复制master 节点提供数据,也就是写。slave 节点负责读。不是说master 分支不能读数据,也能只是我们希望将读写进行分离。slave 是不能写数据的,只能处理读请求主从实现客户端 127.0.0.1:6379 服务器 212.64
redis 主从复制
2017-04-16

PostgreSQL12-主从复制

注意:PostgreSQL 12对主从复制实现和配置做了重大改进,如废弃了recovery.conf,并将参数转换为普通的PostgreSQL配置参数,使得配置群集和复制更加简单。PostgreSQL数据库支持多种复制解决方案,以构建高可用性,可伸缩,容错的应
PostgreSQL12-主从复制
2019-09-10

mysql 主从复制

1, 准备二台机器或者服务器 ,保持mysq 版本一样或者版本相差不大;主机:114.215.198.39从机:116.62.234.2282    新建一个数据库 我的数据库是hlqzxm;进入主机的mysql 配置文件中修改配置; 修改完成配置文件记得重新
mysql 主从复制
2021-10-15

Redis主从复制

Redis支持简单易用的主从复制(master-slave replication)功能,该功能可以让从服务器成为主服务器的即使备份服务器。作用:主从备份,防止服务器宕机;读写分离,分担主服务器的任务;任务分离,从服务器分别担任备份工作和计算工作;注意点:Re
Redis主从复制
2017-12-16

【MySQL】主从复制

纸上得来终觉浅,绝知此事要躬行。概述复制是指将主数据库的DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他
【MySQL】主从复制
2015-07-01

编程热搜

目录