MySQL下perror工具查看InnoDB: Operating system error number XX信息

发布于 2019-11-21  873 次阅读


linux

在MySQL数据库的维护过程中,我们有时候会在MySQL的错误日志文件中看到一些关于Operating system error的错误信息,例如在MySQL的错误日志里面,有时候会看到关于

InnoDB: Operating system error number 0.

InnoDB: Check that your OS and file system support files of this size.

InnoDB: Check also that the disk is not full or a disk quota exceeded.



InnoDB: Operating system error number 5.

...........................................

perror工具安装

1.直接安装mysql-server既可以得到perror命名,他是mysql自带的工具。--一般都有

----使用方法在下面

2.使用代码生成,先写一段C源码,然后使用gcc编译成perror命令,然后使用perror+错误代码查看错误对应原因。

 那么这些System Error Code在Linux下分别代表什么意思呢?其实如果遇到错误日志里有这些对应的代码,使用MySQL自带的命令工具perror查看一下具体信息即可。非常简单方便。

[root@DB-Server ~]# perror 2;

OS error code   2:  No such file or directory

[root@DB-Server ~]# perror 3;

OS error code   3:  No such process

[root@DB-Server ~]# perror 4;

OS error code   4:  Interrupted system call

[root@DB-Server ~]# perror 5;

OS error code   5:  Input/output error

[root@DB-Server ~]#


集群

  如果是集群,那么可以shell> perror --ndb errorcode查看, 下面表格是关于Linux平台下通用的System Error Code列表,如下所示,完全没有必要硬性记住。遇到查看即可。

Number Macro Description
1 EPERM Operation not permitted
2 ENOENT No such file or directory
3 ESRCH No such process
4 EINTR Interrupted system call
5 EIO I/O error
6 ENXIO No such device or address
7 E2BIG Arg list too long
8 ENOEXEC Exec format error
9 EBADF Bad file number
10 ECHILD No child processes
11 EAGAIN Try again
12 ENOMEM Out of memory
13 EACCES Permission denied
14 EFAULT Bad address
15 ENOTBLK Block device required
16 EBUSY Device or resource busy
17 EEXIST File exists
18 EXDEV Cross-device link
19 ENODEV No such device
20 ENOTDIR Not a directory
21 EISDIR Is a directory
22 EINVAL Invalid argument
23 ENFILE File table overflow
24 EMFILE Too many open files
25 ENOTTY Inappropriate ioctl for device
26 ETXTBSY Text file busy
27 EFBIG File too large
28 ENOSPC No space left on device
29 ESPIPE Illegal seek
30 EROFS Read-only file system
31 EMLINK Too many links

Windows

如果是Windows平台,那么也可以使用下面命令查看具体的System Error Code信息,另外,Windows平台下的System Error Code也远比Linux平台下要多,遇到了这些System Error Code,使用命令查看即可。

perror.exe 2

perror `perl -e "print join ' ',1..100"`