MySQL
文章平均质量分 80
MySQL
Hehuyi_In
这个作者很懒,什么都没留下…
展开
-
my2sql —— go语言版binlog解析及闪回工具
之前学习过python语言版binlog解析及闪回工具最近听同事介绍有了新的go语言版的my2sql。优点是不需要安装一大堆依赖包,直接可以安装使用,并且解析更高效,试用一下。原创 2024-03-20 17:32:09 · 2645 阅读 · 1 评论 -
应用连MySQL 报错ERROR 1129 Host is blocked because of many connection errors
在应用程序中时不时出现错误:Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'一、 原因 同一个ip在短时间内产生太多中断的数据库连接(超过mysql数据库max_connection_errors设置)而导致的阻塞。二、 解决方法1. 提高允许的max_connection_errors数量查看max_connection_errors,默认为10.原创 2020-12-23 17:52:47 · 12677 阅读 · 2 评论 -
MySQL 客户端报错 no operations allowed after connection closed
这个报错一般是客户端连接已经被中断了,但客户端不知道,还想重用该连接,在重用的时候就会遇到no operations allowed after connection closed。通过show processlist命令可以看到部分应用连接空闲时间很长(command字段为sleep,time为空闲时间)。一、 可能导致该报错原因数据库中 interactive_timeout 参数设置过短[10-86400] 数据库中 wait_timeout 参数设置过短[1-3153600...原创 2020-12-22 18:08:13 · 13072 阅读 · 0 评论 -
Navicat执行sql报错 [Err] 1055 - Expression # 1 of ORDER BY clause is not in GROUP BY
一、 问题描述开发反馈Navicat无论执行什么语句都会有以下报错,不过实际能执行成功。[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause;原创 2020-12-10 01:02:38 · 3785 阅读 · 1 评论 -
Navicat 清空表 vs 截断表,望文生义惹的祸
一、 故障经过1. 故障现象收到告警mysql服务器剩余空间突然变成0了,赶紧登上去看了下,发现binlog突然增长10几G,由于服务器磁盘本身不大,就被占满了。登录mysql发现有两个可疑的全表delete慢sql:delete from tabname 在执行,恰好开发来问业务表删除特别慢怎么办,基本确定了是由于开发全表delete数据导致的问题。2. 故障处理把delete语句kill掉;手动清理几个binlog释放空间;待从库同步后清理异常增长10几G的大binlog。之后故障恢复。原创 2020-12-09 21:49:36 · 7599 阅读 · 0 评论 -
MySQL 定期新增分区脚本
#!/bin/bash#按年分区,每年的12月份执行该脚本table=tablexxxmysql=/usr/local/mysql/bin/mysqluser=xxxpassword=xxxx#MySQL添加分区的时候,不需要指定字段名称str_0="alter TABLE $table add partition ("str_1="PARTITION p"str_2="VALUES LESS THAN (unix_timestamp('"str_4=") ENGINE = Inn.转载 2020-12-08 18:33:20 · 1902 阅读 · 0 评论 -
MySQL从库1236报错Client requested master to start replication from position > file size
主库断电后主从同步断了?原创 2024-04-30 18:18:16 · 2333 阅读 · 1 评论 -
mysql grant 用户权限总结
Mysql 有多少个权限?经常记不住,今天总结一下,看后都能牢牢的记在心里啦!!很明显总共28个权限:下面是具体的权限介绍:一、 权限表mysql数据库中的3个权限表:user、db、host。权限表的查询过程是:先从user表中的host、 user、 password这3个字段中判断连接的IP、用户名、密码是否存在表中,存在则通过身份验证; 通过权限验证,进行权限分配时,按照user,db,tables_priv,columns_priv的顺序进行分配。即先检查全局权限表.转载 2020-10-31 23:15:42 · 2385 阅读 · 0 评论 -
MySQL 执行计划分析
巻き戻し(まきもどし)倒带早送り快进原创 2020-03-24 00:38:51 · 1747 阅读 · 1 评论 -
MySQL pt-kill & pt-deadlock-logger 死锁检测
一、 pt-kill1. 常用参数 --match-command:匹配show processlist中的 Command 字段,常用的有 Query,Sleep,Binlog Dump,Connect,Delayed insert,Execute,Fetch,Init DB,Kill,Prepare,Processlist,Quit,Reset stmt,Table Dumpmysql> show processlist;+----+------+-----------+--...原创 2019-08-24 16:02:53 · 1750 阅读 · 1 评论 -
MySQL 轻量级Online DDL工具 —— gh-ost
一、gh-ost 介绍gh-ost是 GitHub 发布的一款用于 MySQL 的无触发器在线模式迁移解决方案。它是可测试的,并提供暂停,动态控制/重新配置,审计和许多操作特权。它在整个迁移过程中,对主服务器产生的工作量很少,与已迁移表上的现有工作分离。此外,它还提供了许多可操作的特权,使其更安全、可信赖且易于使用。gh-ost操作方式与现有的在线模式更改工具类似:它们以与原始表相似的方式创建幽灵表,将数据从原始表缓慢且增量地复制到幽灵表,同时应用正在进行的更改(INSERT,DELETE,UP..转载 2024-02-14 21:35:54 · 2672 阅读 · 1 评论 -
MySQL 无权限创建函数、触发器与log_bin_trust_function_creators参数
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_function_creators..原创 2020-09-24 22:38:37 · 2555 阅读 · 0 评论 -
pt-online-schema-change
pt-table-checksum使用须知1、根据测试,需要一个即能登录主库,也能登录从库的账号;2、只能指定一个host,必须为主库的IP;3、在检查时会向表加S锁;4、运行命令之前需要从库的同步IO和SQL进程是YES状态5、pt-table-checksum是当前MySQL主从数据库数据一致性校验比较好的工具,但也会对服务器性能造成影响,尽管影响的范围有限,在进行每个chunk检查校验时会对chunk中涉及的表行加锁,所以,检验还是尽量在业务低峰期进行操作;6、pt-table-che转载 2020-12-20 18:22:45 · 2395 阅读 · 0 评论 -
druid 连接池报错 GetConnectionTimeoutException
业务方反馈凌晨应用出现报错,无法连接数据库:### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 5000, active 0, max原创 2020-12-19 18:28:18 · 21606 阅读 · 5 评论 -
MySQL:ERROR 1067 - Invalid default value for ‘end_time‘
mysql版本:5.7.24一、问题描述创建表执行sql语句如下:create table train_record ( id int(11) not NULL AUTO_INCREMENT, user_name VARCHAR(20) NOT NULL COMMENT'用户名称',train_name TINYINT(1) DEFAULT'2' NOT NULL COMMENT'训练项目,1主动训练 2引导训练', start_t转载 2020-08-11 17:02:08 · 2852 阅读 · 0 评论 -
mysql 5.7导数据报错 --secure-file-priv 处理
mysql可使用 into outfile 参数把表中数据导出到csv,例如可用以下命令把user表的数据导出到user.csvselect * from user into outfile '/tmp/user.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n';1执行后,user表的数据会导出到/tmp/user.csv。参数说明:into outfile ‘导出的目录和文原创 2020-08-21 18:08:09 · 1638 阅读 · 1 评论 -
MySQL主从同步 Last_SQL_Error: Could not execute Update_rows event 报错处理
有同事反馈他们搭建的MySQL库主从同步报错了,需要协助帮忙修复。检查同步报错如下可以看到是由于两边数据不一致,主库host表的某条数据在从库不存在,导致同步时执行update报错。修复的原理很简单,找到主从不一致的这条数据,在从库补上,让update能执行就好。由于需要从binlog里找数据,需要确保中断之后的binlog没被删除,否则就只能重搭了。1. 主库查询对应...原创 2020-05-07 22:54:30 · 18797 阅读 · 2 评论 -
MySQL 5.7 新特性笔记
选取了部分觉得能用上的,完整版参考《MySQL管理之道,性能调优,高可用与监控》一、 安全性1. 默认开启SSL在传输层加密网络连接,保障数据在网络传输的安全。配置与使用通过如下命令开启SSL加密,执行后会在/data目录下生成.pem文件,这就是ssl连接所需的文件。mysql_ssl_rsa_setup创建用户时需要指定该用户通过SSL连接。create u...原创 2020-04-20 23:29:12 · 1535 阅读 · 0 评论 -
MySQL InnoDB锁类型小结
(一)先说明一下定义:1. 读现象(Read phenomena):SQL 92标准规定了3种不同的读现象。脏读、不可重复读和幻读。分别解释一下。1.1 脏读:A dirty read (aka uncommitted dependency) occurs when a transaction is allowed to read data from a row that has be...原创 2020-04-07 01:10:40 · 1553 阅读 · 0 评论 -
MySQL多线程导入导出 —— mydumper & myloader 简介及常见用法
一、 简介之前介绍了mysqldump和mysqlpump两种逻辑备份工具,但还是各有缺点。这里介绍一个更强大的逻辑备份工具mydumper & myloader,前者用于备份或者用于恢复。mysqldumphttps://blog.csdn.net/Hehuyi_In/article/details/90045274mysqlpumphttps://blog.csdn...原创 2020-04-07 00:37:15 · 8409 阅读 · 1 评论 -
mysql 系统库(二) —— 数据库对象信息、统计信息、优化器成本记录表
一、数据库对象信息记录表这类表的功能基本都已被information_schema下同名表取代,本节只做一些简单介绍。1. plugin表该表提供查询自定义安装的插件信息(非系统默认启用的插件),该表的功能已经被information_schema.plugins表取代。root@localhost:mysql01:00:20>select*fromplug...原创 2020-04-05 19:38:43 · 1688 阅读 · 0 评论 -
mysql 系统库(四) —— 复制信息、日志记录表
一、时区信息记录表01 时区信息概述MySQL服务器维护几个时区设置: 系统时区:当Server启动时,尝试确定主机的时区并使用它来设置Server的system_time_zone系统变量值。该变量为只读变量,此外,您还可以在Server启动时使用--timezone = timezone_name选项为mysqld_safe设置MySQL服务器的系统时区。或者在Server启动...原创 2020-04-14 00:31:55 · 3236 阅读 · 1 评论 -
mysql 系统库(一) —— 权限系统表与访问权限控制系统
系列文章参考自《MySQL 性能优化金字塔法则》,删除了书里重复说明和过于复杂的一些解释,完整版请参考原书。前一篇有提到,information_schema 下的表都是非持久的,重启数据就会丢失,那么这些数据来自哪里呢?一部分来自ibdata共享表空间中的数据字典表的映射,而另一部分就来自mysql 系统库下的持久表。mysql 系统库中包含以下类型的表:权限系统表与访问权限...原创 2020-04-05 15:58:37 · 2992 阅读 · 0 评论 -
information_schema 系统库 —— 简介与组成对象
系列文章参考自《MySQL 性能优化金字塔法则》,删除了书里重复说明和过于复杂的一些解释,完整版请参考原书。information_schema 比 sys系统库又要简单一些,不需要另外配置,只需要了解里面有哪些表,能查询哪些信息即可。一、 什么是information_schema1. 简介information_schema提供对数据库元数据、统计信息、以及有关MySQL...原创 2020-04-05 13:57:56 · 1900 阅读 · 0 评论 -
sys 系统库 笔记(三)—— 实际应用案例
一、 利用等待事件找出sql慢在哪里使用sys.session视图结合performance_schema等待事件。首先启用等待事件相关instruments和consumerscall sys.ps_setup_enable_instrument('wait');call sys.ps_setup_enable_consumer('wait');然后利用sys.session...原创 2020-04-04 22:16:09 · 1944 阅读 · 0 评论 -
sys 系统库 笔记(二)—— 配置表与其触发器
相对performance_schema而言,sys 系统库的配置要简单很多,核心只有一个sys_config表,另外有sys_config_insert_set_user和sys_config_update_set_user两个触发器,下面分别介绍。一、 sys_config表该表包含sys系统库的配置选项,每个配置选项一行。可以通过客户端更新此表来持久化配置,server重启不会...原创 2020-04-04 20:25:47 · 1655 阅读 · 0 评论 -
sys 系统库 笔记(一)—— 简介与快速入门
系列文章参考自《MySQL 性能优化金字塔法则》,删除了书里重复说明和过于复杂的一些解释,完整版请参考原书。前面一系列笔记介绍了performance_schema系统库,把它放在最前面其中一个原因就是因为它是sys系统库的数据来源。本系列基于MySQL 5.7.18 版本整理一、 sys系统库使用前提使用sys系统库前,需要确保数据库环境满足如下条件:1)MySQL 5.6...原创 2020-04-04 18:43:56 · 2020 阅读 · 0 评论 -
performance_schema 笔记 实际应用(二)—— 查看最近执行SQL,执行阶段、进度,最近事务执行信息
3. 查看最近的SQL执行信息3.1 查看最近的top sql使用performance_schema中的语句当前事件记录表和语句事件历史记录表可以查询数据库中最近执行的一些SQL语句,以及语句相关的信息,这里我们以events_statements_history表为例,查询结果按照语句完成时间倒序排序,如下:root@localhost : performance_schema ...原创 2020-03-29 23:42:59 · 2477 阅读 · 0 评论 -
performance_schema 笔记 实际应用(一)—— 等待事件,多线程复制报错查看
1.利用等待事件排查MySQL性能问题通常,在生产服务器上线之前, 我们会对数据库服务器的硬件进行IO基准测试,对数据库进行增删改查的基准测试,建立基线参考数据,以便日后的服务器扩容或架构升级提供数据支撑。在基准测试规划时,我们通常需要选择一款基准测试软件(IO基准测试通常选择fio和iozone,MySQL数据库基准测试通常选择sysbench、tpcc-mysql、workbench等),...原创 2020-03-29 23:42:07 · 1662 阅读 · 0 评论 -
performance_schema 笔记(六)—— 复制状态与变量记录表
一、复制信息统计表通常,DBA或相关数据库运维人员在查看从库的复制相关的信息,都习惯性的使用show slave status语句查看。也许你会说,我也会用performance_schema下的表查看一些复制报错信息什么的。但是,你知道show slave status语句、mysql系统库下的复制信息记录表、performance_schema系统库下的复制信息记录表之间有什么区别吗?不知...转载 2020-03-29 23:40:30 · 1831 阅读 · 0 评论 -
performance_schema 笔记(五)—— 数据库对象事件与属性统计
上一篇《事件统计 | performance_schema全方位介绍》详细介绍了performance_schema的事件统计表,但这些统计数据粒度太粗,仅仅按照事件的5大类别+用户、线程等维度进行分类统计,但有时候我们需要从更细粒度的维度进行分类统计,例如:某个表的IO开销多少、锁开销多少、以及用户连接的一些属性统计信息等。此时就需要查看数据库对象事件统计表与属性统计表了。今天将带领大家一起踏上...转载 2020-03-29 23:38:39 · 2159 阅读 · 0 评论 -
performance_schema 笔记(四)—— 事件统计
| 导语在上一篇 《事件记录 | performance_schema全方位介绍"》中,我们详细介绍了performance_schema的事件记录表,恭喜大家在学习performance_schema的路上度过了两个最困难的时期。现在,相信大家已经比较清楚什么是事件了,但有时候我们不需要知道每时每刻产生的每一条事件记录信息, 例如:我们希望了解数据库运行以来一段时间的事件统计数据,这个时候...转载 2020-03-29 23:36:39 · 1538 阅读 · 0 评论 -
performance_schema 笔记(三)—— 等待事件记录表
| 导语在上一篇《配置详解 | performance_schema全方位介绍》中,我们详细介绍了performance_schema的配置表,坚持读完的是真爱,也恭喜大家翻过了一座火焰山。相信有不少人读完之后,已经迫不及待的想要跃跃欲试了,今天将带领大家一起踏上系列第三篇的征程(全系共7个篇章),在这一期里,我们将为大家全面讲解performance_schema中事件原始记录表。下面,...转载 2020-03-29 23:33:56 · 2579 阅读 · 0 评论 -
MySQL 分区表相关
MySQL分区表分为RANGE、LIST、HASH、KEY四种类型,分区表的索引可以局部针对分区表建立。一、 创建1. 创建范围分区表MySQL分区表的分区键order_day必须包含在主键中,且会产生一个问题——当年份超过阈值,到了2013,2014时,需要手动创建这些分区CREATE TABLE sales ( id INT AUTO_INCREMENT, ...原创 2020-03-28 21:03:20 · 1403 阅读 · 0 评论 -
MySQL 5.7新特性 —— 密码强度管理、过期策略、用户锁定与解锁
一、密码强度管理在5.7版本中,如果用户密码过于简单,可能会收到以下报错:GRANT REPLICATION CLIENT ON *.*TO 'username'@'%' IDENTIFIED BY ‘xxxxxxxx’;ERROR 1819 (HY000): Your password does notsatisfy the current policy requirements...原创 2020-03-28 20:06:00 · 3850 阅读 · 1 评论 -
Ubuntu下安装及配置MySQL
与在centos下安装相比多很多坑,不建议用。一、 软件安装Ubuntu下有两种常用方式apt-get方式(类似于yum) deb包方式安装(类似于rpm包)1. 下载并解压软件下载地址:http://dev.mysql.com/downloads/mysql/这个tar包里包含mysql软件所有deb软件包创建安装目录:mkdir /usr/local/...原创 2020-03-28 12:48:07 · 1493 阅读 · 0 评论 -
MySQL Server 体系结构及查询大致流程
跟SqlServer的架构包括其中的组件很类似,可以参考https://blog.csdn.net/Hehuyi_In/article/details/94746160对照着记。上图来自https://www.mysql.com/common/images/PSEA_diagram.jpg可以看到MySQL Server 体系结构也分为四层:网络连接层 关系引擎层(...原创 2020-03-28 01:51:39 · 1470 阅读 · 0 评论 -
MySQL 表字符集不同导致索引失效问题
开发连接oracle遇到这个报错,原文是连mysql的,oracle的排查思路类似项目启动报错:[2016-07-13 10:04:15,074] ERROR org.apache.ibatis.executor.BaseExecutor Could not get a databaseId from dataSource java.sql.SQLException: Conne...原创 2019-12-19 22:30:35 · 2454 阅读 · 1 评论 -
从 MySQL 迁移到 PostgreSQL 方案调研
之前的文章PostgreSQL 初识和PostgreSQL 数据类型大致的把 PostgreSQL 了解了一下,那么接下来就是真正地把它用起来。PGLoader开源迁移工具,通过一行命令即可做到无缝迁移https://github.com/dimitri/pgloaderPGLoader 原本可以将不同数据源导入到 PostgreSQL 数据库,MySQL 只是它支持的一种。...转载 2019-11-28 00:41:30 · 3496 阅读 · 3 评论 -
MySQL并行导入导出工具——mysqlpump
一、mysqlpump简介mysql官方从5.7开始推出了mysqlpump工具,它和mysqldump一样属于逻辑备份。1. 优点基于表并行备份数据库和数据库中对象,加快备份过程。(--default-parallelism) 更好地控制数据库和数据库对象(表,存储过程,用户帐户)的备份。 备份用户账号作为帐户管理语句(CREATE USER,GRANT),而不是直接插入到My...原创 2019-11-11 17:01:37 · 7543 阅读 · 1 评论