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

mysql5.7.19版本的主从复制问题分享

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

mysql5.7.19版本的主从复制问题分享

今天学习构建mysql 5.7.19版本的MySQL的主从复制

碰到了一些坑,特定分享下:

  1. mysql的主从服务器是通过克隆虚拟机完成,导致uuids一样,需要修改auto.cnf文件

  2. 在slave上想通过在/etc/my.cnf里添加连接master的配置,总是导致启动mysqld服务失败,看错误日志,说不支持的选项。原因是5.7.19里已经淘汰了在配置文件里加这种配置的方法了。


下面是部分笔记,特分享下。

mysql> show variables like "%binlog%";

| binlog_format                           | ROW  

====

如何让程序能同时读取主和从服务器上的数据:

1.直接在程序里写死,那个业务访问那台MySQL服务器ip,定死。 ---》很傻、维护起来非常麻烦,需要开发的协助。

不同的业务,不同的服务器

a ----》MYSQL(A)

B ---->MYSQL(B)

2.相同的业务,不同的服务器。使用域名解析来达到读写分离。 ---》比较简单,只要修改下域名对应的ip

写 ----》主

wdb.abc.com  --->132.1.1.5  主

读 -----》主、从    

可以使用负载均衡域名解析

rdb.abc.com  --->132.1.1.1 从

rdb.abc.com  --->132.1.1.2 从

rdb.abc.com  --->132.1.1.3 从

rdb.abc.com  --->132.1.1.4  从

rdb.abc.com  --->132.1.1.5  主

3.使用中间件来实现读写分离。oneproxy---》杭州平民软件---》王广友

中间件里有个配置文件,会写明读往那些服务器,写往那台服务器。

开源:mycat



=====

主从复制-----》为读写分离做铺垫。---》提升性能的作用。

=====

MySQL  replication  复制

   master   slave

   write  read


=====

克隆 clone

1.先关闭计算机


=====

主从复制的前提条件:

2台MySQL服务器的数据是一样的。

=====

将master和slave的ip地址配置好,不要一样,同时修改主机名为mysql_master  、mysql_slave


mysql> grant replication slave  on *.* to 'backup'@'192.168.0.139' identified by '123456';

mysql> CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';

====

/etc/my.cnf


server-id=2

log-bin

master-host=192.168.0.137

master-user=backup

master-password=123456

master-port=3306

目前不可行,总是报错

mysql 官方给的解释:

Obsolete Replication Slave Options  废弃的主从复制的选项

The following options are removed in MySQL 5.5. If you attempt to start mysqld with any of these

options in MySQL 5.5, the server aborts with an unknown variable error. To set the replication

parameters formerly associated with these options, you must use the CHANGE MASTER TO ...

statement (see Section 13.4.2.1, “CHANGE MASTER TO Syntax”).

The options affected are shown in this list:

? --master-host

? --master-user

? --master-password

? --master-port

? --master-connect-retry


? --master-ssl

? --master-ssl-ca

? --master-ssl-capath

? --master-ssl-cert

? --master-ssl-cipher

? --master-ssl-key


===

在从服务器的数据库里输入命令:

mysql> change master to master_host='192.168.0.137', master_user='backup', master_password='123456', master_port=3306;


mysql> START SLAVE;

Query OK, 0 rows affected (0.00 sec)


mysql>

             Slave_IO_Running: No   IO线程启动不起来

            Slave_SQL_Running: Yes

出错信息:

                Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work

  原因是MySQL的server UUID一样

[root@mysql-slave mysql]# pwd

/var/lib/mysql      ---》存放在此目录下

[root@mysql-slave mysql]# 

[root@mysql-slave mysql]# vim auto.cnf   修改此文件里的uuid

[auto]

server-uuid=7fce030c-9f7b-11e7-b09f-000c29e2a2e4

[root@mysql-slave mysql]# service mysqld restart

Redirecting to /bin/systemctl restart  mysqld.service

[root@mysql-slave mysql]# 

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

====

不要在slave里写数据,会导致SQL thread线程不工作,如果已经写了,建议删除,重新启动下slave 进程

mysql> start slave;

===

relay-log.info ---》记录上次从主服务器的binlog日志里什么位置,下次去复制下载主的binlog日志的时候,知道从哪里开始。

master.info  --->连接主服务器使用的(主的ip和连接使用的用户和密码)

mysql-slave-relay-bin.000006  记录中继日志被重新执行的时候的二进制日志

====

1.主从服务器之间复制数据的时候,有延迟吗?是否有数据丢失的现象发生?

主从服务器存放在一个机房好,还是2个机房好?

2.如何减少延迟?如何避免数据丢失?

3.半同步复制是什么?

4.主服务器down机了,从服务器如何顶替主服务器工作?

5.主服务器又恢复了,又可以充当什么角色?主还是从?

6.了解mycat和oneproxy中间件程序,实现读写分离

===

联系方式:695811769@qq.com

免责声明:

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

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

mysql5.7.19版本的主从复制问题分享

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

下载Word文档

猜你喜欢

关于Redis的主从复制及哨兵问题

目录服务器配置主从复TZSCTcR制哨兵服务器配置到这里关于redis的一些基本操作就学习完了,接下来我们就来看看redis中更加高级的部分,首先是配置文件中的配置信息。配置项说明daemonize yesnobind 127.0.0.
2022-06-15

Redis主从复制问题和扩容问题的解决思路

一、解决主从复制问题 当使用Redis作为存储引擎的时候,并且使用Redis读写分离,从机作为读的情况,从机宕机或者和主机断开连接都需要重新连接主机,重新连接主机都会触发全量的主从复制,这时候主机会生成内存快照,主机依然可以对外提供服务,但
2022-06-04

MongoDB技术开发中遇到的文档版本控制问题解决方案分析

MongoDB技术开发中遇到的文档版本控制问题解决方案分析随着互联网技术的快速发展,越来越多的应用开始采用NoSQL数据库来存储和管理数据。MongoDB作为最流行的NoSQL数据库之一,具有可扩展性强、灵活性高等优点而被广泛应用。在进行M
2023-10-22

灵活扩展数据库能力:MySQL主从复制作为集群技术的成本效益分析

灵活扩展数据库能力:MySQL主从复制作为集群技术的成本效益分析随着互联网的迅猛发展,数据库的存储和处理压力也变得越来越大。为了满足业务的需求,很多企业开始寻求一种灵活扩展数据库能力的方法。在这个过程中,MySQL主从复制作为一种常见的集群
2023-10-22

如果有一个特别大的访问量到数据库上,怎么做优化?主从复制、读写分离

第一个就是使用优化查询的方法。这个在前期的内容中有具体说明,这里不再做说明。第二、这里简要说明一个以下几个方法:  主从复制、读写分离、负载均衡  目前,大部分的主流关系型数据库都提供了主从复制的功能,通过配置两台(或多台)数据库的主从关系,可以将一台数据库服
如果有一个特别大的访问量到数据库上,怎么做优化?主从复制、读写分离
2022-03-01

编程热搜

目录