代码改变世界

随笔分类 -  数据库技术(My SQL)

MySQL的validate_password插件/组件总结

2020-08-14 11:39 by 潇湘隐者, 13420 阅读, 收藏, 编辑
摘要: Password Validation插件和组件 在MySQL 8.0之前,MySQL使用的是validate_password插件(plugin)检测、验证账号密码强度,保障账号的安全性,而到了MySQL 8.0,引入了服务器组件(Components)这个特性,validate_password插件已用服务器组件重新实现。下面是官方文档的介绍: Note In MySQL 8.0,... 阅读全文

AutoMySQLBackup 3.0在MySQL 5.7中的问题修复

2020-06-13 10:51 by 潇湘隐者, 782 阅读, 收藏, 编辑
摘要: 最近一个电子看板小项目上线,由于数据库非常小,而且数据也不太重要。因此未选择XtraBackup备份,打算用AutoMySQLBackup来备份,结果部署后测试发现,有一些小问题是之前解决过的。有一些是MySQL 5.7版本才有的。下面记录一下解决过程。关于AutoMySQLBackup的基础知识,参考我这篇博客“MySQL备份还原——AutoMySQLBackup介绍”。这里不做详细介绍。这... 阅读全文

MySQL审计插件MariaDB Audit Plugin学习总结

2020-05-26 16:04 by 潇湘隐者, 3531 阅读, 收藏, 编辑
摘要: MySQL的社区版没有审计功能,企业版才有审计功能。企业版中自带 Audit Plugin ,名为audit_log.so。但是其它MySQL分支版本也开发了各自的审计功能插件。最常见的就是Percona Audit Log Plugin、MariaDB Audit Plugin、当然还有通用插件McAfee MySQL Audit Plugin。 如果MySQL社区版想上审计功能的话,能否使用这... 阅读全文

MySQL的Connection-Control介绍

2020-05-20 00:09 by 潇湘隐者, 3273 阅读, 收藏, 编辑
摘要: 在Oracle和SQL Server数据库中,可以设置一些复杂的账号密码策略,例如在失败登录超过N次即可锁定账号,那么在MySQL中能否也有这样的功能呢?答案是MySQL也有类似这样的功能,只不过在MySQL中是在其登录失败超过阀值后,延迟响应时间,而不是锁定账号,在MySQL 5.6.35以后提供了Connection-Control插件用来控制客户端在登录操作连续失败一定次数后的响应延迟。该插... 阅读全文

CentOS 7上更改MySQL数据库存储目录浅析

2020-03-11 10:18 by 潇湘隐者, 2799 阅读, 收藏, 编辑
摘要: 个人之前总结过两篇文章“MySQL更改数据库数据存储目录”和“Ubuntu上更改MySQL数据库数据存储目录”,都是在工作中遇到相关案例后的一个简单总结。当初的经验不足,认知有限,所以现在来看来,当初的博文确实显得浅析和不够全面,这个也没有办法,当时有些环境或案例没有涉及过,所以文章很难面面俱到,略显单薄和浅显,这个也很正常。博客不是论文,只是个人的笔记和知识点的总结。而且是基于当时的认知的经... 阅读全文

MySQL能否授予查看存储过程定义权限给用户

2019-11-14 15:36 by 潇湘隐者, 7497 阅读, 收藏, 编辑
摘要: 在其他RDBMS中,可以将查看某个存储过程(PROCEDURE)定义的权限给某个用户,例如在SQL Server中,可以单独将查看ProcedureName定义的权限授予UserA GRANT VIEW DEFINITION ON ProcedureName TO UserA; --用具体的存储过程名和账号替换 那么在MySQL中能否实现这个功能呢? 找了很多资料,没有看到有这方面的功能,... 阅读全文

MySQL解惑——GROUP BY隐式排序

2019-11-11 17:03 by 潇湘隐者, 11037 阅读, 收藏, 编辑
摘要: MySQL中GROUP BY隐式排序是什么概念呢? 主要是其它RDBMS没有这样的概念,如果没有认真了解过概念,对这个概念会感觉有点困惑,我们先来看看官方文档的介绍: 官方文档MySQL 5.7 Reference Manual中的“.2.1.14 ORDER BY Optimization”章节有如下介绍: GROUP BY implicitly sorts by default (th... 阅读全文

MySQL的统计信息学习总结

2019-11-08 16:17 by 潇湘隐者, 6367 阅读, 收藏, 编辑
摘要: 统计信息概念 MySQL统计信息是指数据库通过采样、统计出来的表、索引的相关信息,例如,表的记录数、聚集索引page个数、字段的Cardinality....。MySQL在生成执行计划时,需要根据索引的统计信息进行估算,计算出最低代价(或者说是最小开销)的执行计划.MySQL支持有限的索引统计信息,因存储引擎不同而统计信息收集的方式也不同. MySQL官方关于统计信息的概念介绍几乎等同于无,不... 阅读全文

[翻译]——MySQL 8.0 Histograms

2019-11-07 23:27 by 潇湘隐者, 879 阅读, 收藏, 编辑
摘要: 前言: 本文是对这篇博客MySQL 8.0 Histograms的翻译,翻译如有不当的地方,敬请谅解,请尊重原创和翻译劳动成果,转载的时候请注明出处。谢谢! 英文原文地址:https://lefred.be/content/mysql-8-0-histograms/ 翻译原文地址:https://www.cnblogs.com/kerrycode/p/11817026.html 在... 阅读全文

MySQL的sleep函数的特殊特现象

2019-10-26 11:50 by 潇湘隐者, 2769 阅读, 收藏, 编辑
摘要: MySQL中的系统函数sleep,实际应用的场景不多,一般用来做实验测试,昨天在测试的时候,意外发现sleep函数的一个特殊现象。如果在查询语句中使用sleep函数,那么休眠的时间跟返回的记录有关。如下测试所示: mysql> create table test(id int);Query OK, 0 rows affected (0.03 sec) mysql> select *,... 阅读全文

MySQL如何进行索引重建操作?

2019-10-20 09:32 by 潇湘隐者, 17273 阅读, 收藏, 编辑
摘要: 在MySQL数据库中,没有类似于SQL Server数据库或Oracle数据库中索引重建的语法(ALTER INDEX ... REBUILD),那么在MySQL数据库中,是否有什么方式重建索引呢? 在官方文档中"2.11.10 Rebuilding or Repairing Tables or Indexes"中,提到下面三种方式可以Rebuild Index · Dump ... 阅读全文

Azure上MySQL的离线备份:将备份拷贝到Azure Blob上

2019-08-21 15:51 by 潇湘隐者, 563 阅读, 收藏, 编辑
摘要: 公司在Azure的Iaas虚拟机上部署有好几台MySQL数据库,至于没有选择Azure Database for MySQL,是因为预算有限(钱不够啊!说多了也是泪,坑的还是DBA自己)。选择了Iaas的话,DBA就必须考虑离线备份(offline backup),以预防灾难性故障出现。我们选择将历史数据库备份文件用AzCopy同步到Azure存储账户的Blob存储上面。下面简单的介绍、总结一下如... 阅读全文

MySQL字符集与排序规则总结

2019-07-11 15:25 by 潇湘隐者, 53164 阅读, 收藏, 编辑
摘要: 字符集与排序规则概念 在数据库当中都有字符集和排序规则的概念, 很多开发人员甚至包括有些DBA都会将这个混淆,当然这个情况也有一些情有可原的原因。一来两者本来就是相辅相成,相互依赖关联; 另外一方面, 有些数据库并没有清晰的区分开两者。例如,SQL Server中字符集和排序规则就是合在一起的,创建一个新的数据库,只有一个Collation给你选择,并没有字符集选项概念,实际上你在选择... 阅读全文

MySQL系统变量auto_increment_increment与auto_increment_offset学习总结

2019-07-08 13:59 by 潇湘隐者, 4921 阅读, 收藏, 编辑
摘要: 在MySQL中,系统变量auto_increment_increment与auto_increment_offset是与自增列相关的两个参数变量。在官方文档中,将其划分为Replication Master Options and Variables 。具体参考官方文档17.1.6.2 Replication Master Options and Variables auto_incr... 阅读全文

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 0

2019-06-18 15:31 by 潇湘隐者, 33155 阅读, 收藏, 编辑
摘要: 最近遇到一个MySQL连接的问题,远程连接MySQL时遇到“ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 0”错误,如下所示: [root@DB-Server ~]# mysql -h 10.13.65.93 -u onecard -p E... 阅读全文

MySQL如何找出未提交事务信息

2019-06-12 23:34 by 潇湘隐者, 13408 阅读, 收藏, 编辑
摘要: 前阵子,我写了一篇博客“ORACLE中能否找到未提交事务的SQL语句”, 那么在MySQL数据库中,我们能否找出未提交事务执行的SQL语句或未提交事务的相关信息呢? 实验验证了一下,如果一个会话(连接)里面有一个未提交事务,然后不做任何操作,那么这个线程处于Sleep状态 mysql> select connection_id() from dual;+-----------------... 阅读全文

MySQL表的碎片整理和空间回收小结

2019-05-29 12:24 by 潇湘隐者, 37175 阅读, 收藏, 编辑
摘要: MySQL表碎片化(Table Fragmentation)的原因 关于MySQL中表碎片化(Table Fragmentation)产生的原因,简单总结一下,MySQL Engine不同,碎片化的原因可能也有所差别。这里没有深入理解、分析这些差别。此文仅以InnoDB引擎为主。总结如有不足或错误的地方,敬请指出。 InnoDB表的数据存储在页(page)中,每个页可以存放多条记录。这些记... 阅读全文

MySQL系统变量sql_safe_updates总结

2019-03-21 09:14 by 潇湘隐者, 2735 阅读, 收藏, 编辑
摘要: MySQL系统变量sql_safe_updates总结 在MySQL中,系统变量sql_safe_updates是个非常有意思的系统变量,在Oracle和SQL Server中都没有见过这样的参数或功能。如果这个系统变量设置为1的话,意味着update与delete将会受到限制。个人臆测,之所以提供这个功能,一方面是要避免出现更新或删除数据时,忘记添加WHERE条件,导致数据被误更新或误删的情... 阅读全文

MySQL:select command denied to user for table 'proc'案例

2019-01-08 16:44 by 潇湘隐者, 34005 阅读, 收藏, 编辑
摘要: 使用EMS MySQL Manager Pro(3.4.0.1)连接MySQL 5.6.20时,报错:“SELECT command denied to user xxx@xxx.xxx.xxx.xxx for table 'proc' 很是纳闷,后面使用同样的权限,发现使用命令工具mysql -h xxxx -u username -p连接时不会报错。个人猜测是因为EMS MySQ... 阅读全文

MySQL慢查询日志释疑总结

2018-11-15 15:25 by 潇湘隐者, 11060 阅读, 收藏, 编辑
摘要: 之前写了一篇“MySQL慢查询日志总结“,总结了一些MySQL慢查询日志常用的相关知识,这里总结一下在工作当中遇到关于MySQL慢查询日志的相关细节问题,有些是释疑或自己有疑惑,自己测试验证、解惑方面的知识。此篇只是总结个人的一些经验,不足之处,敬请指正! 1: 为什么在慢查询日志里面出现Query_time小于long_query_time阀值的SQL语句呢? 例如,如下... 阅读全文