
最近更新频率不定,索性定个标准,周更吧。
聊聊问题
and 聊聊问题,最近遇到别的厂商的小伙伴在普通用户执行 mysqlbinlog 解析一个 2GB 的 binlog 结果将 tmp 临时目录打爆,虽然影响不大,因为数据库环境 tmpdir 和相关环境变量是配置在数据目录且所以没什么影响。但是如果是没有配置的环境就非常危险了,这会导致 SQL 的临时数据目录不足进而产生以下报错:
Got error %d from storage engine.说明:
%d
对应的 OS 错误码会给出具体原因;例如28
表示No space left on device(磁盘/分区已满)。这是 MySQL 抛出的通用存储引擎错误(错误号 1030 ER_GET_ERRNO)。官方参考。https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html
Can't create/write to file '%s' (Errcode: %d - %s)说明:无法在指定路径创建或写入文件;常见原因包括目标分区满、权限不足或路径不存在。 Errcode: 28
即 “No space left on device”。MySQL 文档专门说明要检查tmpdir
的可写性与磁盘空间。官方参考(“Can't create/write to file”):https://dev.mysql.com/doc/refman/8.0/en/cannot-create.html The table '%s' is full说明:尝试写入表或临时表时空间不足(磁盘或表空间耗尽),MySQL 会报告表已满(无法写入临时 .MYI/.MYD 等文件)。该信息常与无法写临时表的场景同时出现。
相关于上面两类写入错误(官方错误列表中列出类似条目):https://dev.mysql.com/doc/mysql-errors/8.0/en/global-error-reference.html
Sort aborted
/Sort aborted: ...说明:执行 filesort/外部排序时需要在磁盘创建临时排序文件,若无法写入(如 tmpdir 满)就会中止排序并报 “Sort aborted”。(文档中有
FILSORT_ABORT
/ “Sort aborted” 条目)官方错误参考(“Sort aborted”):https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html
低级 I/O 全盘写入相关提示(例如
Disk is full writing '%s'
/ OS perror 输出)说明:MySQL 在底层 I/O 层会报告磁盘写入失败(例如
perror 28
显示No space left on device
),这些通常出现在错误日志或控制台中,提示确实是磁盘/分区已满。官方 I/O/全盘错误条目:https://dev.mysql.com/doc/mysql-errors/8.0/en/global-error-reference.html
配置临时数据目录
官网也有对 mysqlbinlog 临时数据目录的说明
*When running mysqlbinlog against a large binary log, be careful that the filesystem has enough space for the resulting files. To configure the directory that mysqlbinlog uses for temporary files, use the
”TMPDIR
environment variable.
使用 mysqlbinlog 处理大型二进制日志时,请确保文件系统有足够的空间来存放生成的文件。要配置 mysqlbinlog 用于存放临时文件的目录,请使用 TMPDIR
环境变量。
export TMPDIR=/data/DIR
mysqlbinlog ...
参考
https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog.html
https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html
https://dev.mysql.com/doc/refman/8.0/en/cannot-create.html
https://dev.mysql.com/doc/mysql-errors/8.0/en/global-error-reference.html
最后很多没拉人了,拉一波,里面很多有趣的小伙伴





