• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!
MySQL 5.7基于GTID的多源复制

MySQL 5.7基于GTID的多源复制

我们知道,如果我们想把多个 MySQL Master 数据汇集到同一个实例,可以选择 MySQL 5.7 提供的多源复制,就是建立多个复制通道,每个通道分别 change master 到不同的实例即可。但这里对于复制方式可以基于 position 模式,或 gitd 模式。这里并不是介绍一些关于复制的基础知识,对于 position 模式,就不说了,也比较……

MySQL 5.7错误日志中常见的几种Note级别日志解释

MySQL 5.7错误日志中常见的几种Note级别日志解释

看到一篇关于Note日志的文章,挺不错的,转载记录一下。其中在第三种错误日志中增加了一些知识点。 在使用MySQL 5.7的时候,发现了不少在MySQL 5.6上不曾见过的日志,级别为Note,作者梳理了一下,最常见的Note日志以下三种,下面我们来逐个解释。 第一种:Aborted connection [Note] Abor……

MySQL 5.7定义日志级别新参数(log_error_verbosity)

MySQL 5.7定义日志级别新参数(log_error_verbosity)

log_warnings 在介绍这个参数前,我们先聊聊参数 log_warnings。我们知道 MySQL 中,其中 log_error 定义是否启用错误日志的功能和错误日志的存储位置,log_warnings 定义是否将告警信息(warning messages)也写入错误日志。此选项默认启用,具体来说: log_warnings 为 0, 表示不记录告……

MySQL 5.7秒级增加VARCHAR类型

MySQL 5.7秒级增加VARCHAR类型

在生产环境中,可能经常要做的且教烦的一个事情就是做DDL操作。最常见的就是增加字段、修改字段类型了。增加字段就不说了,从MySQL 5.6开始就支持Online DDL了。但改变字段类型,比如从CHAR变为VARCHAR;修改字段类型,比如增加VARCHAR大小,这些在MySQL 5.7之前还是会锁表的。从MySQL 5.7开始就支持了对于tinyint、i……

MySQL 5.7内部临时表使用

MySQL 5.7内部临时表使用

一、MySQL中的两种临时表 外部临时表 通过CREATE TEMPORARY TABLE 创建的临时表,这种临时表称为外部临时表。这种临时表只对当前用户可见,当前会话结束的时候,该临时表会自动关闭。这种临时表的命名与非临时表可以同名(同名后非临时表将对当前会话不可见,直到临时表被删除)。 内部临时表 内部临时表是一种特殊轻量级的临时表,用来进行性能……

MySQL文档存储快速入门指南

MySQL文档存储快速入门指南

一、MySQL文档存储说明 关系数据库(如MySQL)通常存储结构化数据,需要提前定义好数据的格式。而NoSQL的出现就是为了打破这种僵局,使得开发人员可以存储非结构化数据,使用文档的方式进行存储数据,无需提前定义数据格式。早先MariaDB也有对非结构化的数据进行存储的方案,称为dynamic column,但是方案是通过BLOB类型的方式来存储。这样导致……

MySQL 5.7默认SQL模式带来的问题总结

MySQL 5.7默认SQL模式带来的问题总结

在使用MySQL 5.7版本时,已经碰到了两起因为SQL_MODE的改变而导致的问题了,究其原因都是因为MySQL 5.7控制的更加严格了,所以在MySQL 5.6或MySQL 5.5有些SQL语句就无法在MySQL 5.7执行了(会给开发带来一个很诡异的问题,就是代码一样、环境一样、SQL一样、测试跟正式怎么就报错呢?)。 说一下我碰到的两起事件: 某些……

MySQL 5.7:自动回收UNDO表空间

MySQL 5.7:自动回收UNDO表空间

undo log segment(undo segment) Undo Logs 合集。undo segment 可以被重复使用,但是一次只能由一个事务占用。 rollback segment 也就是 Undo Logs 的物理存储区域。 undo tablespace rollback segment 被从系统表空间里分离出来后的实际磁盘文件表……

MySQL 5.7中timestamp数据类型和explicit_defaults_for_timestamp参数

MySQL 5.7中timestamp数据类型和explicit_defaults_for_timestamp参数

在 MySQL 中,由于 TIMESTAMP 类型占用的空间为 4 个字节,理论上其能够存储最大的日期为 “2038-01-19 03:14:07”,而在 MySQL 5.6 之后占用的内存空间为 7 个字节,可以精确到毫秒、微秒,但是这个最大日期并没有被改变。所以,当我们存储时间大于 “2038-01-19 03:14:07” 时系统就会报错。 这个限制在……

MySQL 5.7默认ONLY_FULL_GROUP_BY语义介绍

MySQL 5.7默认ONLY_FULL_GROUP_BY语义介绍

ONLY_FULL_GROUP_BY是MySQL提供的一个sql_mode,通过这个sql_mode来提供SQL语句“分组求最值”合法性的检查,在MySQL的sql_mode为非ONLY_FULL_GROUP_BY语义时。一条select语句,MySQL允许target list中输出的表达式是除聚集函数或group by column以外的表达式,但这个表……

MySQL 5.7:多线程备份工具mysqlpump使用

MySQL 5.7:多线程备份工具mysqlpump使用

一、mysqlpump介绍 MySQL在备份方面包含了自身的mysqldump工具,但其只支持单线程工作,这就使得它无法迅速的备份数据。所以就有人写了mydumper工具,支持多线程,并且是行级粒度,支持正则匹配多数据库。MySQL官方当然也意识到了这个问题,所以从MySQL 5.7开始就推出了mysqlpump工具,mysqlpump相对于之前的逻辑备份工……

MySQL 5.7:客户端和服务端默认开启加密连接

MySQL 5.7:客户端和服务端默认开启加密连接

有这么一种需求,就是要求处理敏感字段,比如取出的密码或资金数据用 *** 来表示,那么 DBA 就无法看到这部分的私人数据内容。这本身是一个很不错的安全处理方式,但若 DBA 在本地装一个类似 tcpdump 的工具,则依然能够通过获取得到的包得到想要的数据。因此,除了在程序端进行展示的安全处理,还需在 MySQL 服务器端开启安全的加密通信功能,这时就是 ……