MySQL的两种主从复制方式

目录 MySQL
  • 基于二进制日志文件偏移量(Binary Log File Position)
  • 基于 GTID(Global Transaction Identifiers)

基于二进制日志文件偏移量

主库的所有变更操作(写入更新)都会视为事件,被写入二进制日志文件中。从库通过读取主库的二进制日志文件,并在从库中执行这些事件,达到主从同步。

默认情况下,从库会执行由主库读取到的所有日志事件,即全数据库复制;也可以通过配置使从数据库只执行某些特定的数据库或数据表的日志事件,即部分数据库表复制。

每个从库都会保留一个记录,包括二进制日志文件名和偏移量,从库会记录哪些来自主库的日志事件已经在从库执行过。这意味着多个从库可以连接同一个主库,并执行同一个二进制日志文件的不同部分,从库处理从主库复制的过程,因此从库不论连接与否都不会影响主库的操作。同时,每个从库都会记录当前已经执行日志事件的位置,从库就可以在断开连接后再重连的时候,能够从记录的位置继续从主库同步。

继续阅读 “MySQL的两种主从复制方式”

Modern PHP 学习笔记:关于 PSR 规范

目录 PHP

由于 PSR 规范最初来源于一个社区组织 —— PHP-FIG,因此在介绍 PSR 规范之前,先介绍一下 PHP-FIG。

PHP-FIG(PHP Framework Interop Group),是框架代表自发组织的,其成立的目标都是为了改进 PHP 社区。PHP-FIG 制定了推荐规范,PHP 框架可以自愿遵循这些规范,改进与其他框架的通信和共享功能。

PSR(PHP Standards Recommendation,PHP 推荐标准),是 PHP-FIG 制定的推荐规范。目前 PHP-FIG 一共制定并发布了五个推荐规范,本文只介绍其中的四个推荐规范(其实是 PHP-FIG 废弃了第一份推荐规范 PSR-0)。

  • PSR-1:基本的代码风格
  • PSR-2:严格的代码风格
  • PSR-3:日志记录器接口
  • PSR-4:自动加载

继续阅读 “Modern PHP 学习笔记:关于 PSR 规范”

博客恢复服务通知

目录 通知

我于10月25日在腾讯云提交注销网站的申请,出乎意料,10月26日就收到了广东省管局的注销确认邮件,为这效率点赞。但同时,令我感到不便的是,腾讯云控制台在我收到确认邮件后未能及时同步状态。通过腾讯云官方的 Q&A,我得知腾讯云控制台同步需要1-2个工作日,但我到今天为止还没有收到主动同步的结果。见无果所以提交了工单,欣慰的是腾讯云的工程师处理及时,状态马上得到了同步。最后,由于工作室公用账号在注销网站备案后,也一并取消了我个人的主体与腾讯云账号的绑定,所以我的博客不受其影响,因此博客从现在起恢复服务。后续我会将工作室域名解析、域名备案、服务器交由其他人负责,这段时间感谢大家的陪伴,我会更努力的学习,给大家带来更多有用的文章。

求知 —— 是一种享受。

 

laijingwu

2017年10月30日

博客暂停服务通知

目录 通知

由于本人所在的网园资讯工作室域名备案需要撤销等原因,导致我个人的主体需要撤销并重新备案,这将导致我个人博客域名备案受到影响,届时博客将暂停服务并停止访问两周左右。主体、域名备案完成后会尽快恢复博客访问。如有不便,还请谅解。

 

laijingwu

2017年10月25日

Nginx + SSL 的配置优化

目录 Linux

近期,博客服务器由阿里云华北区迁移至阿里云华南区,并启用了阿里云的 OSS 对象存储和 CDN 节点加速,系统由Ubuntu 14.04 升级至 Ubuntu 16.04 并打上所有安全补丁,采用全站 HTTPS 安全连接。因此在迁移前,SSL 评估时得分为 B 以下,因为OpenSSL版本低,导致安全性不足,此次迁移后索性通过 SSL LabsMySSL 两个 SSL 安全评估站点对自己的网站进行了检测,发现得分为 A。但仍有一些配置可以优化,本篇文章就记录一下我是如何配置 Nginx 中的 SSL,提升其安全性。本文需要一定的 SSL 配置基础,在此之前请确认你的 Web 服务器已经开启了 HTTPS。

简要介绍

HTTPS:我们简单地可以认为是 HTTP + TLS。HTTP 协议目前已经广泛地运用在大部分的 Web 应用和网站,随着线上支付、移动支付越来越流行,对网络传输安全要求也提升了不少。

TLS:是一种传输层加密协议,它的前身是 SSL 协议,于 1999 年正式更名为 TLS 。TLS 协议主要有五部分:应用数据层协议,握手协议,报警协议,加密消息确认协议,心跳协议。

目前常用的 HTTP 协议是 HTTP 1.1,前几年还有 HTTP 1.0,如今 HTTP 2 已经推出,但目前设备支持还需要点时间。

常用的 TLS 协议版本有:TLS1.2,TLS1.1,TLS1.0 和 SSL3.0。其中 SSL3.0 由于 POODLE 攻击已经被证实不安全。TLS1.0 也存在部分安全漏洞,比如 RC4 和 BEAST 攻击。 继续阅读 “Nginx + SSL 的配置优化”

DrCom 5.2.1(X) 版协议分析 —— UDP 协议

目录 Linux, 项目探索

前面说了那么多,估计已经一脸懵逼了,没关系,现在才是重头戏,也是认证协议的重中之重,就是复杂到反人类的 UDP 协议╮(╯_╰)╭。

现在来讲讲 UDP 认证的作用,其实具体什么作用我也不知道,在协议分析的过程中,如果不按套路来进行 UDP 认证和心跳包的发送,最长上线时间仅能维持21分钟,随后就会被服务器强制下线,所以我推测 UDP 只是起到了心跳维持状态的用处。

问题的发现

在完成了 EAP 协议的分析之后,我们使用 C++ 实现了 EAP 协议的认证过程,测试过程中使用 Wireshark 抓包的过程中,发现了一个严重的问题,在历经大约21分钟的上线之后,毫无例外的都会收到服务器发来的 Failure 包,这意味着我们被服务器强制下线了。 继续阅读 “DrCom 5.2.1(X) 版协议分析 —— UDP 协议”

DrCom 5.2.1(X) 版协议分析 —— EAP 协议

目录 Linux, 项目探索

通过 Wireshark 抓包可以得到几个重要的包,其中一个包是客户端在启动时向网关 Nearest 发送 Logoff 包:

Clevo_18:5f:14   Nearest   EAPOL   96   Logoff

0000   01 80 c2 00 00 03 80 fa 5b 18 5f 14 88 8e 01 02  ........[._.....
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0020   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0030   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0040   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0050   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

协议类型为 0x888e,即 EAP,可扩展身份验证协议,是 802.1x 认证机制的核心。而 EAPOL 则是基于局域网的 EAP。通过 EAP 包追踪到的IP发现还有 UDP 心跳包,所以可以确定 DrCom 5.2.1(X) 使用 EAP 协议完成内网认证,随后通过 UDP 协议发送心跳包保持登录状态。 继续阅读 “DrCom 5.2.1(X) 版协议分析 —— EAP 协议”

DrCom 5.2.1(X) 版协议分析 —— 序

目录 Linux, 项目探索

引言

本文仅适用于韶关学院南区、西区宿舍拨号的 DrCom 5.2.1(X) 客户端。

在生活中我们经常会用到无线 Wi-Fi 网络,而本人所就读的学校西区宿舍区使用的是 DrCom 5.2.1(X) 版本的客户端,官方发布有 Windows, Linux, MacOS 三大平台的版本,经过测试只有 Windows 版本可正常使用,且仅有的 Windows 版本对 Wi-Fi 共享工具做出限制,优化差到检测到 Wi-Fi 共享软件就会 CPU 爆炸(占用100%),在拨号过程中以及拨号后容易出现掉线或无法上线的情况。由于本人秉承着爱作死,爱折腾的精神,对学校使用的拨号客户端通信协议进行分析。

继续阅读 “DrCom 5.2.1(X) 版协议分析 —— 序”