在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.
...........................................
那么这些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 ~]#
如果你要查看一个范围的Operating system error,可以使用下面命令
[root@DB-Server ~]# perror `seq 0 10`
OS error code 0: Success
OS error code 1: Operation not permitted
OS error code 2: No such file or directory
OS error code 3: No such process
OS error code 4: Interrupted system call
OS error code 5: Input/output error
OS error code 6: No such device or address
OS error code 7: Argument list too long
OS error code 8: Exec format error
OS error code 9: Bad file descriptor
OS error code 10: No child processes
[root@DB-Server ~]#
如果是集群,那么可以shell> perror –ndb errorcode查看, 下面表格是关于Linux平台下通用的System Error Code列表,如下所示,完全没有必要硬性记住。遇到查看即可。
如果是Windows平台,那么也可以使用下面命令查看具体的System Error Code信息,另外,Windows平台下的System Error Code也远比Linux平台下要多,遇到了这些System Error Code,使用命令查看即可。
perror.exe 2
perror `perl -e "print join ' ',1..100"`