代码改变世界

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

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

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

MySQL解惑——GROUP BY隐式排序

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

[翻译]——MySQL 8.0 Histograms

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

MySQL字符集与排序规则总结

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

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

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

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

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

MySQL系统变量sql_safe_updates总结

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

Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)

2018-11-07 15:47 by 潇湘隐者, 3277 阅读, 收藏, 编辑
摘要:今天一个同事反馈往一个MySQL数据库导入数据时,报“ERROR 1 (HY000): Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)”这样的错误,如下所示: uery OK, 0 rows affected (0.03 sec) ERROR 1 (HY000): Can't cr... 阅读全文

MySQL 执行计划中Extra(Using where,Using index,Using index condition,Using index,Using where)的浅析

2018-11-05 14:49 by 潇湘隐者, 4379 阅读, 收藏, 编辑
摘要:关于如何理解MySQL执行计划中Extra列的Using where、Using Index、Using index condition,Using index,Using where这四者的区别。首先,我们来看看官方文档关于三者的简单介绍(官方文档并没有介绍Using index,Using where这种情况): Using index (JSON property: using_... 阅读全文

Ubuntu上更改MySQL数据库数据存储目录

2018-10-15 23:37 by 潇湘隐者, 2006 阅读, 收藏, 编辑
摘要:之前写过一篇博客“MySQL更改数据库数据存储目录”,当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之前的经验用不上了(或者说之前的总结不是太全面),修改完MySQL数据库数据存储目录后重启MySQL,发现MySQL服务无法启动。 root@mylnx2:/etc/mysql/mysql.conf.d# servi... 阅读全文

Ubuntu下面MySQL的参数文件my.cnf浅析

2018-10-07 00:09 by 潇湘隐者, 4015 阅读, 收藏, 编辑
摘要:前几天刚接手一个MySQL数据,操作系统为Ubuntu 16.04.5 LTS, 数据库版本为5.7.23-0ubuntu0.16.04.1(APT方式安装的MySQL)。这个操作系统下的MySQL的配置文件my.cnf很多地方都让人有点不适应(跟之前的MySQL环境有些出入,之前都是维护RHEL、CentOS等操作系统环境下的MySQL)。遂研究总结了一下。具体如下所示: root@... 阅读全文

ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

2018-09-20 14:45 by 潇湘隐者, 29112 阅读, 收藏, 编辑
摘要:今天在MySQL 5.6版本的数据库中修改InnoDB表字段长度时遇到了"ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes"错误,第一次遇到这个错误,遂花了点学习、研究过、总结这个问题。 我们先来创建一个测试表,构造这样的错误。 mysql> use MyDB;Reading tab... 阅读全文

MySQL索引扩展(Index Extensions)学习总结

2018-09-12 16:19 by 潇湘隐者, 939 阅读, 收藏, 编辑
摘要:MySQL InnoDB的二级索引(Secondary Index)会自动补齐主键,将主键列追加到二级索引列后面。详细一点来说,InnoDB的二级索引(Secondary Index)除了存储索引列key值,还存储着主键的值(而不是指向主键的指针)。为什么这样做呢?因为InnoDB是以聚集索引方式组织数据的存储,即主键值相邻的数据行紧凑的存储在一起(索引组织表)。当数据行移动或者发生页分裂的时... 阅读全文

MySQL如何判别InnoDB表是独立表空间还是共享表空间

2018-08-21 23:37 by 潇湘隐者, 1660 阅读, 收藏, 编辑
摘要:InnoDB采用按表空间(tablespace)的方式进行存储数据, 默认配置情况下会有一个初始大小为10MB, 名字为ibdata1的文件, 该文件就是默认的表空间文件(tablespce file),用户可以通过参数innodb_data_file_path对其进行设置,可以有多个数据文件,如果没有设置innodb_file_per_table的话, 那些Innodb存储类型的表的数据都... 阅读全文

MySQL Innodb数据库误删ibdata1后MySQL数据库的恢复案例

2018-08-19 19:04 by 潇湘隐者, 1571 阅读, 收藏, 编辑
摘要:上周,以前公司的同事朋友找我帮忙,看看能否帮忙恢复一个MySQL 数据库,具体情况为:数据库版本为MySQL 5.6(具体版本不清楚),也不清楚具体的数据库引擎; 没有数据库备份,只剩下数据库下面的一些文件(frm、idb),具体原因是因为出现问题的时候,重装了MySQL,最要命的是ibdata1等文件也没有了,当然这中间细节过程如何,不清楚也不用去纠结了。大概就是这么一个情况。 因... 阅读全文

MySQL中Identifier Case Sensitivity

2018-08-15 22:51 by 潇湘隐者, 590 阅读, 收藏, 编辑
摘要:在MySQL当中,有可能遇到表名大小写敏感的问题。其实这个跟平台(操作系统)有关,也跟系统变量lower_case_table_names有关系。下面总结一下,有兴趣可以查看官方文档“Identifier Case Sensitivity” In MySQL, databases correspond to directories within the data directory. Each... 阅读全文

MySQL mysqlbinlog解析出的SQL语句被注释是怎么回事

2018-07-16 08:47 by 潇湘隐者, 5267 阅读, 收藏, 编辑
摘要:MySQL mysqlbinlog解析出的SQL语句被注释是怎么回事 一网友反馈使用mysqlbinlog解析出的二进制日志中的内容中,有些SQL语句有#注释的情况,这个是怎么回事呢?我们通过实验来了解一下具体细节情况,如下所示,实验环境为5.6.20-enterprise-commercial-advanced-log # whereis mysqlbinlog mysqlbinlo... 阅读全文

MySQL 5.7开启二进制日志注意事项

2018-07-11 15:56 by 潇湘隐者, 1942 阅读, 收藏, 编辑
摘要:最近才开始将部分MySQL 5.6升级到MySQL 5.7, 在开启MySQL的二进制日志时,发现MySQL 5.7 与MySQL 5.6已有细微区别。如果在my.cnf配置文件中,只设置了全局系统变量log_bin,没有设置全局系统变量server_id的话,那么MySQL启动不了,而且错误日志没有任何错误信息。 查了一下官方文档16.1.6.4 Binary Logging Options... 阅读全文

MySQL自增列(AUTO_INCREMENT)相关知识点总结

2018-07-11 15:32 by 潇湘隐者, 1965 阅读, 收藏, 编辑
摘要:MySQL的自增列(AUTO_INCREMENT)和其它数据库的自增列对比,有很多特性和不同点(甚至不同存储引擎、不同版本也有一些不同的特性),让人感觉有点稍微复杂。下面我们从一些测试开始,来认识、了解一下这方面的特殊知识点: 自增列持久化问题 如果一个表拥有自增列,当前最大自增列值为9, 删除了自增列6、7、8、9的记录,重启MySQL服务后,再往表里面插入数据,自增列的值为6还... 阅读全文

Percona XtraBackup 备份还原篇

2018-06-27 23:34 by 潇湘隐者, 1476 阅读, 收藏, 编辑
摘要:Percona XtraBackup 安装介绍篇已经对Percona XtraBackup的功能和安装做了比较详细的介绍,那么本篇我们直接进入主题,如何使用XtraBackup做备份、还原,下面主要介绍XtraBackup备份还原操作的细节和场景,疏漏之处难免存在,如有不足,敬请指出。本篇暂时不做原理介绍,后续篇章"Percona XtraBackup 原理分析篇"再做介绍。 ... 阅读全文

MySQL状态变量Aborted_connects与Aborted_clients浅析

2018-06-21 00:25 by 潇湘隐者, 1367 阅读, 收藏, 编辑
摘要:关于MySQL的状态变量Aborted_clients & Aborted_connects分别代表的意义,以及哪些情况或因素会导致这些状态变量变化呢?下文通过实验测试来验证一下,首先我们来看看状态变量的描述: Aborted Connect Aborted Connect表示尝试连接到MySQL服务器失败的次数。这个状态变量可以结合host_cache表和其错误日志一起来分析问题... 阅读全文

ERROR 1044 (42000): Access denied for user 'root'@'localhost'

2018-06-19 14:53 by 潇湘隐者, 15040 阅读, 收藏, 编辑
摘要:从供应商那边接手一个MySQL数据库(数据库版本为5.7.21 MySQL Community Server (GPL)),在创建账号时遇到了“ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database xxx”错误,如下所示 mysql> grant all on xxx.* to xxx@'192... 阅读全文

ERROR 3009 (HY000): Column count of mysql.user is wrong…..

2018-06-19 13:45 by 潇湘隐者, 3647 阅读, 收藏, 编辑
摘要:在测试备份还原时,使用XtraBackup还原数据库后,创建一个测试账号时遇到了下面错误: mysql> grant all on house.* to test@'192.168.%' identified by 'test1249'; ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found ... 阅读全文

MySQL InnoDB下关于MVCC的一个问题的分析

2018-05-29 22:33 by 潇湘隐者, 474 阅读, 收藏, 编辑
摘要:这个是网友++C++在群里问的一个关于MySQL的问题,本篇文章实验测试环境为MySQL 5.6.20,事务隔离级别为REPEATABLE-READ ,在演示问题前,我们先准备测试环境。准备一个测试表test以及一个存储过程循环往test表里面插入记录。 CREATE TABLE test( `id` int(11) primary key not null, `name` char... 阅读全文

翻译:MySQL "Got an Error Reading Communication Packet" Errors

2018-05-23 09:07 by 潇湘隐者, 13982 阅读, 收藏, 编辑
摘要:前言: 本文是对Muhammad Irfan的这篇博客MySQL "Got an Error Reading Communication Packet" Errors的翻译,如有翻译不对或不好的地方,敬请指出,大家一起学习进步。尊重原创和翻译劳动成果,转载时请注明出处。谢谢! 英文原文地址:https://www.percona.com/blog/2016/05/16/mysql-got-... 阅读全文

MySQL的变量分类总结

2018-05-10 19:44 by 潇湘隐者, 1706 阅读, 收藏, 编辑
摘要:在MySQL中,my.cnf是参数文件(Option Files),类似于ORACLE数据库中的spfile、pfile参数文件,照理说,参数文件my.cnf中的都是系统参数(这种称呼比较符合思维习惯),但是官方又称呼其为系统变量(system variables),那么到底这个叫系统参数或系统变量(system variables)呢? 这个曾经是一个让我很纠结的问题,因为MySQL中有各种... 阅读全文

MySQL5.7参数log_timestamps

2018-04-30 17:12 by 潇湘隐者, 1022 阅读, 收藏, 编辑
摘要:最近测试MySQL 5.7.21 Community Server这个版本的MySQL数据库时,发现其错误日志的时间跟系统当前时间不一致,后面检查发现日期时间格式都是UTC时间,查了一下相关资料,原来在MySQL 5.7.2 之后日志文件里面的时间戳从默认的本地系统时区改为了UTC格式。MySQL 5.7.2多了一个参数log_timestamps ,这个参数主要是控制错误日志、慢查询日志等日志... 阅读全文

MySQL新参数log_error_verbosity

2018-04-30 11:49 by 潇湘隐者, 4491 阅读, 收藏, 编辑
摘要:在介绍这个参数前,我们先聊聊参数log_warnings。我们知道MySQL中,其中log_error定义是否启用错误日志的功能和错误日志的存储位置,log_warnings定义是否将告警信息(warning messages)也写入错误日志。此选项默认启用,具体来说: log_warnings 为0, 表示不记录告警信息。 log_warnings 为1, 表示告警信息写入错误日... 阅读全文

[翻译]:MySQL Error: Too many connections

2018-04-27 23:25 by 潇湘隐者, 647 阅读, 收藏, 编辑
摘要:翻译:MySQL Error: Too many connections 前言: 本文是对Muhammad Irfan的这篇博客MySQL Error: Too many connections的翻译,如有翻译不对或不好的地方,敬请指出,大家一起学习进步。尊重原创和翻译劳动成果,转载时请注明出处。谢谢! 英文原文地址:https://www.percona.com/blog/2013/... 阅读全文

MySQL Innodb如何找出阻塞事务源头SQL

2018-04-26 00:04 by 潇湘隐者, 1959 阅读, 收藏, 编辑
摘要:在MySQL数据库中出现了阻塞问题,如何快速查找定位问题根源?在实验开始前,我们先梳理一下有什么工具或命令查看MySQL的阻塞,另外,我们也要一一对比其优劣,因为有些命令可能在实际环境下可能并不适用。 1: show engine innodb status 2: Innotop工具 3: INNODB_TRX 等系统表 下面我们理论联系实际,通过实验来测试总结一... 阅读全文

MySQL下perror工具查看System Error Code信息

2018-04-02 23:52 by 潇湘隐者, 1310 阅读, 收藏, 编辑
摘要:在MySQL数据库的维护过程中,我们有时候会在MySQL的错误日志文件中看到一些关于Operating system error的错误信息,例如在MySQL的错误日志里面,有时候会看到关于 InnoDB: Operating system error number 0. InnoDB: Check that your OS and file system support files of... 阅读全文

ERROR 1050 (42S01): Table xxx already exists

2018-04-02 12:26 by 潇湘隐者, 4837 阅读, 收藏, 编辑
摘要:今天遇到一个关于MySQL求助的问题,修改表结构时遇到“ERROR 1050 (42S01): table xxx already exits" mysql> ALTER TABLE DAY_BOOK_REPORT ADD UNIT_PRICE_PCS DOUBLE(12,2) DEFAULT NULL; ERROR 1050 (42S01): TABLE 'INVGSP/#SQL-... 阅读全文

MySQL的自动提交模式

2018-03-26 10:09 by 潇湘隐者, 17402 阅读, 收藏, 编辑
摘要:默认情况下, MySQL启用自动提交模式(变量autocommit为ON)。这意味着, 只要你执行DML操作的语句,MySQL会立即隐式提交事务(Implicit Commit)。这个跟SQL Server基本是类似的。如果你了解SQL Server数据库的话。 查看autocommit模式 由于变量autocommit分会话系统变量与全局系统变量,所以查询的时候,最好... 阅读全文

MySQL服务读取参数文件my.cnf的规律研究探索

2018-03-16 15:27 by 潇湘隐者, 971 阅读, 收藏, 编辑
摘要:在MySQL中,它是按什么顺序或规律去读取my.cnf配置文件的呢?其实只要你花一点功夫,实验测试一下就能弄清楚,下面的实验环境为5.7.21 MySQL Community Server。其它版本如有不同,请以实际情况为准。 其实,MySQL是按照下面这个顺序来读取my.cnf: 1: /etc/my.cnf 2: /etc/mysql/my.cnf 3: /us... 阅读全文

ERROR 1045 (28000): Access denied for user xxx & ERROR 1449 (HY000): The user specified as a definer xxx does not exists

2018-03-07 17:04 by 潇湘隐者, 1765 阅读, 收藏, 编辑
摘要:今天在一个修改过权限的MySQL数据库遇到了“ERROR 1045 (28000): Access denied for user 'xxx'@'xxx.xxx.xxx.xxx' (using password: YES)”和“ERROR 1449 (HY000): The user specified as a definer ('xxx'@'xx') does not exist” 错误,... 阅读全文

MySQL参数max_connect_errors分析释疑

2018-02-02 16:36 by 潇湘隐者, 12556 阅读, 收藏, 编辑
摘要:最近一MySQL服务器,由于一些特殊因素遇到“ERROR 1129 (00000): Host 'xxx' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'”,在问题解决后,在详细了解参数max_connect_errors的过程中,有些不同网络资料的矛盾描述确实让我有点迷惑和... 阅读全文

Innotop简单介绍

2017-10-12 15:30 by 潇湘隐者, 550 阅读, 收藏, 编辑
摘要:Innotop介绍 Innotop是一款Perl脚本编写、开源、功能强大的MySQ的监控工具,它通过文本模式(命令行模式)监控,功能强大,配置简单,易于使用等等特性。Innotop这个项目位于https://github.com/innotop/innotop上。官方的介绍如下: innotop is a 'top' clone for MySQL with many features... 阅读全文

MySQL参数log_bin_trust_function_creators介绍

2017-10-09 17:02 by 潇湘隐者, 18683 阅读, 收藏, 编辑
摘要:MySQL的有个参数log_bin_trust_function_creators,官方文档对这个参数的介绍、解释如下所示: log_bin_trust_function_creators Command-Line Format --log-bin-trust-function-creators System Variable Name log_bin_trust_f... 阅读全文

(28000): Access denied for user 'root'@'127.0.0.1' (using password: YES)

2017-09-26 15:59 by 潇湘隐者, 3039 阅读, 收藏, 编辑
摘要:在一台测试服务器测试Python脚本时,执行Python脚本时报如下错误: 主要错误信息为“operation the sql fail!1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES)”。 部分测试脚本如下所示,如下所,mysql.connector.connect的ho... 阅读全文

MySQL Crash Errcode: 28 - No space left on device

2017-09-20 15:26 by 潇湘隐者, 1157 阅读, 收藏, 编辑
摘要:一台MySQL服务器突然Crash了,检查进程 ps -ef | grep -i mysql 发现mysqld进程已经没有了, 检查错误日志时发现MySQL确实Crash了。具体如下所示: 注意日志中的时间: 09:49:52 UTC是UTC时间(协调世界时间) , 加上8小时就是东八区的时间17:45:52,日志前段是UTC时间,后面又是系统时间。这个需要注意! 09:49:52... 阅读全文

MySQL ODBC 3.51 Driver - Access Denied

2017-09-19 14:18 by 潇湘隐者, 1153 阅读, 收藏, 编辑
摘要:MySQL ODBC 3.51 Driver - Access Denied 同事反馈在应用服务器上配置MySQL ODBC 3.51 Drive时,测试连接MySQL数据库时报下面错误: ERROR [HYT00] [MySQL][ODBC 3.51 Driver]Access denied for user: 'xxx@xxxx' (Using password: YES) ... 阅读全文

MySQL 修改账号的IP限制条件

2017-08-25 16:50 by 潇湘隐者, 6840 阅读, 收藏, 编辑
摘要:今天遇到一个需求:修改MySQL用户的权限,需要限制特定IP地址才能访问,第一次遇到这类需求,结果在测试过程,使用更新系统权限报发现出现了一些问题, 具体演示如下. 下面测试环境为MySQL 5.6.20. 如有其它版本与下面测试结果有出入,请以实际环境为准。 我们先创建一个测试用户LimitIP,只允许192.168段的IP地址访问,具体权限如下所示: mysql> GRANT S... 阅读全文

MySQL 查看用户授予的权限

2017-08-24 16:40 by 潇湘隐者, 4550 阅读, 收藏, 编辑
摘要:在MySQL中,如何查看一个用户被授予了那些权限呢? 授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子程序层级权限。具体分类如下: 全局层级 全局权限适用于一个给定服务器中的所有数据库。这些权限存储在mysql.user表中。GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤销全局权限。 数据库层级 数据库权限适用... 阅读全文

MySQL 授予普通用户PROCESS权限

2017-08-24 10:37 by 潇湘隐者, 4471 阅读, 收藏, 编辑
摘要:在MySQL中如何给普通用户授予查看所有用户线程/连接的权限,当然,默认情况下show processlist是可以查看当前用户的线程/连接的。 mysql> grant process on MyDB.* to test; ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES 第一次授予这样... 阅读全文

MySQL线程处于Waiting for table flush的分析

2017-08-18 12:19 by 潇湘隐者, 1891 阅读, 收藏, 编辑
摘要:最近遇到一个案例,很多查询被阻塞没有返回结果,使用show processlist查看,发现不少MySQL线程处于Waiting for table flush状态,查询语句一直被阻塞,只能通过Kill进程来解决。那么我们先来看看Waiting for table flush的官方解释:https://dev.mysql.com/doc/refman/5.6/en/general-thread... 阅读全文

MySQL 5.6.20-enterprise-commercial的参数文件位置问题

2017-07-19 14:24 by 潇湘隐者, 282 阅读, 收藏, 编辑
摘要:今天在折腾MySQL的参数文件时,突然发现MySQL 5.6.20-enterprise-commercial-advanced-log这个版本数据库的参数文件my.cnf的位置有点奇怪,如下所示: [root@DB-Server ~]# mysql --help | grep my.cnf order of preference, my.cnf, ... 阅读全文

RHEL 5.7 使用rpm安装XtraBackup问题总结

2017-07-11 17:24 by 潇湘隐者, 639 阅读, 收藏, 编辑
摘要:在Red Hat Enterprise Linux Server release 5.7 (Tikanga)上使用RPM方式安装Percona Xtrabackup 2.4.6时遇到了一些问题,特意总结在此。 [root@DB-Server tmp]#yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-... 阅读全文

MySQL查询日志总结

2017-07-07 09:24 by 潇湘隐者, 18783 阅读, 收藏, 编辑
摘要:MySQL查询日志介绍 MySQL的查询日志记录了所有MySQL数据库请求的信息。无论这些请求是否得到了正确的执行。默认文件名为hostname.log。默认情况下MySQL查询日志是关闭的。生产环境,如果开启MySQL查询日志,对性能还是有蛮大的影响的。另外很多时候,MySQL慢查询日志基本可以定位那些出现性能问题的SQL,所以MySQL查询日志应用的场景其实不多,有点鸡肋的感觉,它... 阅读全文

MySQL 如何查看表的存储引擎

2017-06-13 09:45 by 潇湘隐者, 13613 阅读, 收藏, 编辑
摘要:MySQL 如何查看表的存储引擎 在MySQL中如何查看单个表的存储引擎? 如何查看整个数据库有那些表是某个特殊存储引擎,例如MyISAM存储引擎呢?下面简单的整理一下这方面的知识点。 如果要查看单个表的存储引擎,可以用show create table命令查看该表的存储引擎,那么有下面一些方法: 方法1: mysql> show create table test; ... 阅读全文

MySQL中lock tables和unlock tables浅析

2017-06-12 10:05 by 潇湘隐者, 23211 阅读, 收藏, 编辑
摘要:MySQL中lock tables和unlock tables浅析 在MySQL中提供了锁定表(lock tables)和解锁表(unlock tables)的语法功能,ORACLE与SQL Server数据库当中没有这种语法。相信刚接触MySQL的人,都想详细、深入的了解一下这个功能.下面就尽量全面的解析、总结一下MySQL中lock tables与unlock tables的功能,如有不足... 阅读全文

mysqldump 参数--lock-tables浅析

2017-06-08 17:20 by 潇湘隐者, 5207 阅读, 收藏, 编辑
摘要:mysqldump有一个参数--lock-tables,以前对这个参数也没有详细了解过,直到上次有个网友问“参数lock-tables 是一次性锁定当前库的所有表,还是锁定当前导出表?“ ,之前一直以为只是锁定当前导出表,后面看了参数说明后, -l, --lock-tables Lock all tables for read. (Defau... 阅读全文

Percona XtraBackup 安装介绍篇

2017-06-02 14:02 by 潇湘隐者, 7466 阅读, 收藏, 编辑
摘要:XtraBackup介绍 XtraBackup是Percona公司的开源项目,用以实现类似Innodb官方的热备份工具InnoDB Hot Backup的功能,它支持在线热备份(备份时不影响数据读写)。到目前为止,最新的版本为Percona XtraBackup 2.4.7. XtraBackup有很多功能和优点:例如支持全备、增量备份、部分备份;支持压缩备份;备份不影响数据读写、事务... 阅读全文

MySQL 5.7忘记root密码如何修改?

2017-05-05 16:08 by 潇湘隐者, 4416 阅读, 收藏, 编辑
摘要:一直以来,MySQL的应用和学习环境都是MySQL 5.6和之前的版本,也没有去关注新版本MySQL 5.7的变化和新特性。今天帮人处理忘记root密码的时时候,发现以前的方法不奏效了。具体情况如下所示: 案例环境如下: 操作系统 : Red Hat Enterprise Linux Server release 6.6 (Santiago) 数据库版本: 5.... 阅读全文

MySQL二进制日志总结

2017-03-24 12:28 by 潇湘隐者, 12140 阅读, 收藏, 编辑
摘要:二进制日志简单介绍 MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句。二进制日志(binary log)中记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其它额外信息,但是它不记录SELECT、SHOW等那些不修改数据的SQL语句。二进制日志(binary log)主要用于数据库恢... 阅读全文

MySQL查看修改存储引擎总结

2017-03-18 10:25 by 潇湘隐者, 15081 阅读, 收藏, 编辑
摘要:本文总结了MySQL下查看、修改存储引擎的一些方法。测试、验证环境为MySQL 5.6 ,如有差异,请以实际版本为准 1:查看MySQL的存储引擎信息 1.1 使用show engines命令。 Support列, YES表示当前版本支持这个存储引擎, DEFAULT表示该引擎是默认的引擎。NO表示不支持该存储引擎。如下所示,InnoDB是默认的存储引擎。 1.2 可以查看... 阅读全文

XtraBackup备份出现"Can't locate Digest/MD5.pm in @INC"

2017-02-23 13:34 by 潇湘隐者, 4810 阅读, 收藏, 编辑
摘要:在CentOS 7上安装了Xtrabackup 2.4.5(innobackupex version 2.4.5 Linux (x86_64) (revision id: e41c0be)),然后做备份时遇到下面错误信息“Can't locate Digest/MD5.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/loca... 阅读全文

远程连接MySQL数据库问题总结

2017-02-07 10:45 by 潇湘隐者, 1866 阅读, 收藏, 编辑
摘要:远程连接MySQL数据库时,陆陆续续遇到了一些杂七杂八的问题,相信很多人也曾经遇到过这类问题,下面总结归纳在下面,方便以后直接查找。 1:出现ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (111) [root@cluster-00 ~]# mysql -h 10.20.34.76 -u root... 阅读全文

CentOS 7 安装MySQL 5.6遇到的疑难杂症小结

2016-11-11 14:42 by 潇湘隐者, 5209 阅读, 收藏, 编辑
摘要:在一测试服务器(CentOS Linux release 7.2.1511)上安装MySQL 5.6(5.6.19 MySQL Community Server)时遇到下面错误,这个是因为CentOS 7的默认数据库已经不再是MySQL了,而是MariaDB. MySQL安装时的mysql lib库与mariadb的库、包冲突了,如下详情所示(省略了大量日志) [root@azrlnx06... 阅读全文

Linux 平台MySQL启动关闭方式总结

2016-07-20 11:57 by 潇湘隐者, 80649 阅读, 收藏, 编辑
摘要:MySQL的启动方法有很多种,下面对比、总结这几种方法的一些差异和特性,下面实验的版本为MySQL 5.6。如有疏漏或不足,敬请指点一二。 1:使用mysqld启动、关闭MySQL服务 mysqld是MySQL的守护进程,我们可以用mysqld来启动、关闭MySQL服务,关于mysqld, MySQL 5.6官方介绍资料如下所示: mysqld, also known as ... 阅读全文

MySQL慢查询日志总结

2016-06-17 10:32 by 潇湘隐者, 55266 阅读, 收藏, 编辑
摘要:慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建... 阅读全文

MySQL错误日志总结

2016-05-11 23:49 by 潇湘隐者, 27641 阅读, 收藏, 编辑
摘要:MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息。错误日志的命名通常为hostname.err。其中,hostname表示服务器主机名。 The error log contains information indicating when mysqld was started and stopped and also any criti... 阅读全文

MySQL server version for the right syntax to use near 'TYPE=MyISAM'

2016-04-27 14:07 by 潇湘隐者, 11491 阅读, 收藏, 编辑
摘要:最近将一个版本为4.0.18-Max的MySQL数据库迁移到5.6.20-enterprise-commercial-advanced上。好吧,这是我迄今为止,见到过的最古老版本的MySQL数据库,这个数据库跑在一个512M上老古董PC上,已经存活了十多年了。使用mysqldump导出导入时,遇到了一个错误: mysql>CREATE TABLE BackupFrequency ( B... 阅读全文

MySQL 使用XtraBackup的shell脚本介绍

2016-04-25 14:49 by 潇湘隐者, 1231 阅读, 收藏, 编辑
摘要:mysql_backup.sh是关于MySQL的一个使用XtraBackup做备份的shell脚本,实现了简单的完整备份和增量备份、以及邮件发送备份信息等功能。功能目前还比较简单,后续将继续完善和增加相关功能。参考了网上MySQL备份的脚本,如有不足的地方,欢迎大家拍砖! 1: 使用前,请先做一些配置选项修改,例如备份路径设置、连接数据库的账号密码等等。 2: 在BACKUP_DIR目录下,创... 阅读全文

XtraBackup出现 Can't connect to local MySQL server through socket '/tmp/mysql.sock'

2016-03-22 23:18 by 潇湘隐者, 11935 阅读, 收藏, 编辑
摘要:Xtrabackup做备份时遇到下面错误信息MySQL server: Can't connect to local MySQL server through socket '/tmp/mysql.so‘(2) [root@MySQL-DB ~]# innobackupex --defaults-file=/usr/my.cnf --user=root --password=passwor... 阅读全文

CentOS 6.6安装Xtrabackup RPM提示缺少libev.so.4()

2016-03-22 22:02 by 潇湘隐者, 13367 阅读, 收藏, 编辑
摘要:在CentOS Release 6.6安装percona-xtrabackup-2.3.4时,遇到下面错误信息 rpm -ivh percona-xtrabackup-2.3.4-1.el6.x86_64.rpm 在 https://bugs.launchpad.net/percona-xtrabackup/+bug/1526636上看到,这个是一个bug来着,在 percona-xtraba... 阅读全文

MySQL如何导出带日期格式的文件

2015-12-30 20:03 by 潇湘隐者, 3178 阅读, 收藏, 编辑
摘要:一网友问在MySQL中如何只用SQL语句导出带日期格式的文件。觉得有点意思,于是尝试了一下。导出文件使用SELECT INTO OUTFILE 但是OUTFILE后面的值不能使用变量,所以只能使用动态SQL语句来实现。其中表user为测试表。具体语句如下所示 mysql> SET @SqlScript= CONCAT("SELECT * INTO OUTFILE '/tmp/sql_o... 阅读全文

mysqldump:Couldn't execute 'show create table `tablename`': Table tablename' doesn't exist (1146)

2015-11-15 09:45 by 潇湘隐者, 6980 阅读, 收藏, 编辑
摘要:遇到了一个错误mysqldump: Couldn't execute 'show create table `CONCURRENCY_ERRORS`': Table INVOICE_OLD.CONCURRENCY_ERRORS' doesn't exist (1146) ###### WARNING ###### Errors reported during AutoMySQLBackup exe... 阅读全文

MySQL 博客文章目录(2017-02-18更新)

2015-11-14 22:53 by 潇湘隐者, 2918 阅读, 收藏, 编辑
摘要:1MySQL安装配置 Linux MySQL源码安装缺少ncurses-devel包 Linux平台卸载MySQL总结 Linux 卸载mysql-libs包出现错误 CentOS 7 安装MySQL 5.6遇到的疑难杂症小结 2 MySQL管理配置 MySQL修改root账号密码 MySQL查看数 阅读全文

Automysqlbackup: WARNING: Turning off multicore support, since pigz isn’t there.

2015-11-12 14:43 by 潇湘隐者, 602 阅读, 收藏, 编辑
摘要:在使用Automysqlbackup备份MySQL时,有时候你会在邮件里面看见"WARNING: Turning off multicore support, since pigz isn't there."这样的告警信息,为什么会出现这个告警信息呢? 错误原因: Automysqlbackup在备份MySQL数据库时会去压缩dump文件。而且支持多处理器。它默认使用pigz进行压缩处理。... 阅读全文

AutoMySQLBackup 3.0 Bug:"du: WARNING: use --si, not -H"

2015-11-05 17:42 by 潇湘隐者, 548 阅读, 收藏, 编辑
摘要:案例环境: 操作系统版本: Red Hat Enterprise Linux Server release 5.7 64bit 数据库版本 : 5.6.19 MySQL Community Server AutoMySQLBackup: Automysqlbackup-v3.0_rc6 案例场景: AutoMySQLBackup 3.0版本备份时,出现告警错误“du: WARNING: us... 阅读全文

mysql: unknown variable 'character-set-client=utf8'

2015-10-07 22:16 by 潇湘隐者, 17247 阅读, 收藏, 编辑
摘要:在同事安装的MySQL服务器上(居然安装的是My-SQL 5.1.73的老旧版本),登录MySQL时遇到下面“mysql: unknown variable 'character-set-client=utf8'”错误: [root@MySQLDB002 lib]# mysql -u root -p mysql: unknown variable 'character-set-client=u... 阅读全文

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

2015-07-30 23:17 by 潇湘隐者, 7053 阅读, 收藏, 编辑
摘要:从供应商手中接手一个云平台(Windwos Azure)上的MySQL数据库,登录数据库时遇到错误: $mysql -uroot -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 检查配置文件/et... 阅读全文

MySQL备份还原——AutoMySQLBackup介绍

2015-07-15 17:25 by 潇湘隐者, 3818 阅读, 收藏, 编辑
摘要:AutoMySQLBackup是一个开源的MySQL备份脚本。可以说它是一个轻量级的备份方案,AutoMySQLBackup的安装、配置非常简单、方便。AutoMySQLBackup的sourceforge上介绍有如它本身,也非常的简单: Description AutoMySQLBackup with a basic configuration will create Daily, Weekly... 阅读全文

mysqldump: Got error: 1142: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' when using LOCK TABLES

2015-07-11 23:28 by 潇湘隐者, 6536 阅读, 收藏, 编辑
摘要:AutoMySQLBackup备份时,出现mysqldump: Got error: 1142: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' when using LOCK TABLES错误,具体内容如下所示 [root@DB-Server ~]# /usr/bin/aut... 阅读全文

MySQL备份还原——mysqldump工具介绍

2015-07-11 11:09 by 潇湘隐者, 2047 阅读, 收藏, 编辑
摘要:mysqldump是一款MySQL逻辑备份的工具,他将数据库里面的对象(表)导出成SQL脚本文件。有点类似于SQL SEVER的“任务-生成脚本”的逻辑备份功能。mysqldump是比较常用的备份方法,适合于在不同MySQL版本之间的迁移、升级。不足之处就是数据库比较大时,mysqldump的效率不高。 mysqldump的主要参数收集整理注释如下,如果你要查看mysqldump的具体参数信... 阅读全文

MySQL修改root账号密码

2015-07-09 14:36 by 潇湘隐者, 3190 阅读, 收藏, 编辑
摘要:MySQL数据库中如何修改root用户的密码呢?下面总结了修改root用户密码的一些方法 1: 使用set password语句修改 mysql> select user();+----------------+| user() |+----------------+| root@localhost |+----------------+1 row in set (0.08 ... 阅读全文

MySQL查看数据库相关信息

2015-06-28 23:53 by 潇湘隐者, 22597 阅读, 收藏, 编辑
摘要:使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小、字符集、用户等等。下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || INVOICE ... 阅读全文

mysqldump: Error: Binlogging on server not active

2015-06-10 11:57 by 潇湘隐者, 7305 阅读, 收藏, 编辑
摘要:在学习使用mysqldump时,使用mysqldump备份时,遇到了下面两个错误: [root@DB-Server backup]# ./mysql_dump_back.sh Warning: Using a password on the command line interface can be insecure. mysqldump: Error: Binlogging on server... 阅读全文

MySQL更改数据库数据存储目录

2015-03-27 15:24 by 潇湘隐者, 37422 阅读, 收藏, 编辑
摘要:MySQL数据库默认的数据库文件位于/var/lib/mysql下,有时候由于存储规划等原因,需要更改MySQL数据库的数据存储目录。下文总结整理了实践过程的操作步骤。 1:确认MySQL数据库存储目录 [root@DB-Server tmp]# mysqladmin -u root -p variables | grep datadir Enter password: | datadir... 阅读全文

MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)的真正原因

2015-03-26 12:23 by 潇湘隐者, 146691 阅读, 收藏, 编辑
摘要:在博客Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)里面,我介绍了一下安装MySQL后登陆MySQL时会遇到ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using p... 阅读全文

Linux平台卸载MySQL总结

2015-03-25 00:00 by 潇湘隐者, 128488 阅读, 收藏, 编辑
摘要:如何在Linux下卸载MySQL数据库呢? 下面总结、整理了一下Linux平台下卸载MySQL的方法。 MySQL的安装主要有三种方式:二进制包安装(Using Generic Binaries)、RPM包安装、源码安装。对应不同的安装方式,卸载的步骤有些不同。文章中如有不足或不对的地方,敬请指出或补充! RPM包安装方式的MySQL卸载 1: 检查是否安装了MySQL组件。 [... 阅读全文

Linux 卸载mysql-libs包出现错误

2015-03-20 15:31 by 潇湘隐者, 17632 阅读, 收藏, 编辑
摘要:在Red Hat Enterprise Linux6.6上安装MySQL时,出现与package mysql-libs-5.1.73-3.el6_5.x86_64冲突的情况 [root@localhost tmp]# rpm -ivh MySQL-server-advanced-5.6.20-1.rhel5.x86_64.rpmPreparing... #####... 阅读全文

Linux MySQL源码安装缺少ncurses-devel包

2015-03-14 11:32 by 潇湘隐者, 20363 阅读, 收藏, 编辑
摘要:在Red Hat Enterprise Linux Server release 5.7 上用源码安装MySQL-5.6.23时,遇到了" remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-dev... 阅读全文

查看mysql数据库版本方法总结

2014-07-24 17:48 by 潇湘隐者, 119975 阅读, 收藏, 编辑
摘要:当你接手某个mysql数据库管理时,首先你需要查看维护的mysql数据库版本;当开发人员问你mysql数据库版本时,而恰好你又遗忘了,那么此时也需要去查看mysql数据库的版本..............。下文总结一下Linux平台下查看mysql数据库的方法.个人觉得总结的比较全面了。 方法1:登录数据库时,你可以看到对应mysql数据库的版本信息,如下所示: [root@DB-Ser... 阅读全文

Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

2014-07-22 23:33 by 潇湘隐者, 136891 阅读, 收藏, 编辑
摘要:案例环境: 操作系统 :Red Hat Enterprise Linux Server release 5.7 (Tikanga) 64 bit 数据库版本 : Mysql 5.6.19 64 bit 案例介绍: 今天开始学习mysql,遂先安装了Mysql 5.6.19 64bit 版本的数据库,结果安装成功了,但是使用root登录时遇到了E... 阅读全文