用途说明:
perror命令是MySQL数据库系统中的一个工具程序,它用于打印C语言中errno错误代码的含义、也可以打印MySQL中存储引擎错误代码的含义。(perror
prints a description for a system error code or for a storage
engine (table handler) error code.)
由于perror是MySQL中的一个工具程序,在没有安装MySQL的机器上就无法执行,
常用参数
格式:perror
打印系统错误代码errno值的含义。
格式:perror
打印MySQL数据库系统中定义的错误代码的含义。
格式:perror ...
打印多个错误代码的含义。
man perror 写道
For most system errors, MySQL displays, in addition to an
internal text message, the system error code in one
of the following styles:
message ... (errno: #)
message ... (Errcode: #)
Linux操作系统中定义的errno值如下所示。
errno.h 写道
#define EPERM 1
#define ENOENT 2
#define ESRCH 3
#define EINTR 4
#define EIO 5
#define ENXIO 6
#define E2BIG 7
#define ENOEXEC 8
#define EBADF 9
#define ECHILD 10
#define EAGAIN 11
#define ENOMEM 12
#define EACCES 13
#define EFAULT 14
#define ENOTBLK 15
#define EBUSY 16
#define EEXIST 17
#define EXDEV 18
#define ENODEV 19
#define ENOTDIR 20
#define EISDIR 21
#define EINVAL 22
#define ENFILE 23
#define EMFILE 24
#define ENOTTY 25
#define ETXTBSY 26
#define EFBIG 27
#define ENOSPC 28
#define ESPIPE 29
#define EROFS 30
#define EMLINK 31
#define EPIPE 32
#define EDOM 33
#define ERANGE 34
#define EDEADLK 35
#define ENAMETOOLONG 36
#define ENOLCK 37
#define ENOSYS 38
#define ENOTEMPTY 39
#define ELOOP 40
#define EWOULDBLOCK EAGAIN
#define ENOMSG 42
#define EIDRM 43
#define ECHRNG 44
#define EL2NSYNC 45
#define EL3HLT 46
#define EL3RST 47
#define ELNRNG 48
#define EUNATCH 49
#define ENOCSI 50
#define EL2HLT 51
#define EBADE 52
#define EBADR 53
#define EXFULL 54
#define ENOANO 55
#define EBADRQC 56
#define EBADSLT 57
#define EDEADLOCK EDEADLK
#define EBFONT 59
#define ENOSTR 60
#define ENODATA 61
#define ETIME 62
#define ENOSR 63
#define ENONET 64
#define ENOPKG 65
#define EREMOTE 66
#define ENOLINK 67
#define EADV 68
#define ESRMNT 69
#define ECOMM 70
#define EPROTO 71
#define EMULTIHOP 72
#define EDOTDOT 73
#define EBADMSG 74
#define EOVERFLOW 75
#define ENOTUNIQ 76
#define EBADFD 77
#define EREMCHG 78
#define ELIBACC 79
#define ELIBBAD 80
#define ELIBSCN 81
#define ELIBMAX 82
#define ELIBEXEC 83
#define EILSEQ 84
#define ERESTART 85
#define ESTRPIPE 86
#define EUSERS 87
#define ENOTSOCK 88
#define EDESTADDRREQ 89
#define EMSGSIZE 90
#define EPROTOTYPE 91
#define ENOPROTOOPT 92
#define EPROTONOSUPPORT 93
#define ESOCKTNOSUPPORT 94
#define EOPNOTSUPP 95
#define EPFNOSUPPORT 96
#define EAFNOSUPPORT 97
#define EADDRINUSE 98
#define EADDRNOTAVAIL 99
#define ENETDOWN 100
#define ENETUNREACH 101
#define ENETRESET 102
#define ECONNABORTED 103
#define ECONNRESET 104
#define ENOBUFS 105
#define EISCONN 106
#define ENOTCONN 107
#define ESHUTDOWN 108
#define ETOOMANYREFS 109
#define ETIMEDOUT 110
#define ECONNREFUSED 111
#define EHOSTDOWN 112
#define EHOSTUNREACH 113
#define EALREADY 114
#define EINPROGRESS 115
#define ESTALE 116
#define EUCLEAN 117
#define ENOTNAM 118
#define ENAVAIL 119
#define EISNAM 120
#define EREMOTEIO 121
#define EDQUOT 122
#define ENOMEDIUM 123
#define EMEDIUMTYPE 124
使用示例
示例一: 打印错误代码的含义
[root@jfht ~]# perror 1
OS error code 1:
Operation not permitted
#define EPERM 1
[root@jfht ~]# perror 13 64
OS error code 13:
Permission denied
OS error code 64: Machine
is not on the network
#define EACCES 13
#define ENONET 64
[root@jfht ~]#
补充一个:既是操作系统errno,也是MySQL错误代码的。
[root@jfht ~]# perror 121
OS error code 121: Remote I/O error
MySQL error code 121: Duplicate key on write or update
示例二:
打印不存在的错误代码的含义
要注意的是,perror似乎并不能打印SQL执行时所报的错误代码的含义。
mysql> select;
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server
version
for the right syntax to use near '' at line
1、
[root@jfht ~]# perror 42000
Illegal error code: 42000
[root@jfht ~]# perror 1064
Illegal error code: 1064
[root@jfht ~]#
示例三:
枚举所有错误代码
[root@jfht ~]# for i in $(seq 1 10000); do perror $i; done
>10000.txt 2>/dev/null
[root@jfht ~]# cat 10000.txt
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
OS error code 11: Resource
temporarily unavailable
OS error code 12: Cannot
allocate memory
OS error code 13:
Permission denied
OS error code 14: Bad
address
OS error code 15: Block
device required
OS error code 16: Device
or resource busy
OS error code 17: File
exists
OS error code 18: Invalid
cross-device link
OS error code 19: No such
device
OS error code 20: Not a
directory
OS error code 21: Is a
directory
OS error code 22: Invalid
argument
OS error code 23: Too many
open files in system
OS error code 24: Too many
open files
OS error code 25:
Inappropriate ioctl for device
OS error code 26: Text
file busy
OS error code 27: File too
large
OS error code 28: No space
left on device
OS error code 29: Illegal
seek
OS error code 30:
Read-only file system
OS error code 31: Too many
links
OS error code 32: Broken
pipe
OS error code 33:
Numerical argument out of domain
OS error code 34:
Numerical result out of range
OS error code 35: Resource
deadlock avoided
OS error code 36: File
name too long
OS error code 37: No locks
available
OS error code 38: Function
not implemented
OS error code 39:
Directory not empty
OS error code 40: Too many
levels of symbolic links
OS error code 42: No
message of desired type
OS error code 43:
Identifier removed
OS error code 44: Channel
number out of range
OS error code 45: Level 2
not synchronized
OS error code 46: Level 3
halted
OS error code 47: Level 3
reset
OS error code 48: Link
number out of range
OS error code 49: Protocol
driver not attached
OS error code 50: No CSI
structure available
OS error code 51: Level 2
halted
OS error code 52: Invalid
exchange
OS error code 53: Invalid
request descriptor
OS error code 54: Exchange
full
OS error code 55: No
anode
OS error code 56: Invalid
request code
OS error code 57: Invalid
slot
OS error code 59: Bad font
file format
OS error code 60: Device
not a stream
OS error code 61: No data
available
OS error code 62: Timer
expired
OS error code 63: Out of
streams resources
OS error code 64: Machine
is not on the network
OS error code 65: Package
not installed
OS error code 66: Object
is remote
OS error code 67: Link has
been severed
OS error code 68:
Advertise error
OS error code 69: Srmount
error
OS error code 70:
Communication error on send
OS error code 71: Protocol
error
OS error code 72: Multihop
attempted
OS error code 73: RFS
specific error
OS error code 74: Bad
message
OS error code 75: Value
too large for defined data type
OS error code 76: Name not
unique on network
OS error code 77: File
descriptor in bad state
OS error code 78: Remote
address changed
OS error code 79: Can not
access a needed shared library
OS error code 80:
Accessing a corrupted shared library
OS error code 81: .lib
section in a.out corrupted
OS error code 82:
Attempting to link in too many shared
libraries
OS error code 83: Cannot
exec a shared library directly
OS error code 84: Invalid
or incomplete multibyte or wide character
OS error code 85:
Interrupted system call should be restarted
OS error code 86: Streams
pipe error
OS error code 87: Too many
users
OS error code 88: Socket
operation on non-socket
OS error code 89:
Destination address required
OS error code 90: Message
too long
OS error code 91: Protocol
wrong type for socket
OS error code 92: Protocol
not available
OS error code 93: Protocol
not supported
OS error code 94: Socket
type not supported
OS error code 95:
Operation not supported
OS error code 96: Protocol
family not supported
OS error code 97: Address
family not supported by protocol
OS error code 98: Address
already in use
OS error code 99: Cannot
assign requested address
OS error code 100: Network is down
OS error code 101: Network is
unreachable
OS error code 102: Network dropped
connection on reset
OS error code 103: Software caused
connection abort
OS error code 104: Connection reset by
peer
OS error code 105: No buffer space
available
OS error code 106: Transport endpoint is
already connected
OS error code 107: Transport endpoint is not
connected
OS error code 108: Cannot send after
transport endpoint shutdown
OS error code 109: Too many references:
cannot splice
OS error code 110: Connection timed
out
OS error code 111: Connection refused
OS error code 112: Host is down
OS error code 113: No route to host
OS error code 114: Operation already in
progress
OS error code 115: Operation now in
progress
OS error code 116: Stale NFS file
handle
OS error code 117: Structure needs
cleaning
OS error code 118: Not a XENIX named type
file
OS error code 119: No XENIX semaphores
available
OS error code 120: Is a named type
file
MySQL error code 120: Didn't find key on read or update
OS error code 121: Remote I/O error
MySQL error code 121: Duplicate key on write or update
OS error code 122: Disk quota exceeded
MySQL error code 122: Internal (unspecified) error in
handler
OS error code 123: No medium found
MySQL error code 123: Someone has changed the row since it was
read (while the table was locked to prevent it)
OS error code 124: Wrong medium type
MySQL error code 124: Wrong index given to function
OS error code 125: Operation canceled
MySQL error code 125: Undefined handler error 125
OS error code 126: Required key not
available
MySQL error code 126: Index file is crashed
OS error code 127: Key has expired
MySQL error code 127: Record file is crashed
OS error code 128: Key has been
revoked
MySQL error code 128: Out of memory in engine
OS error code 129: Key was rejected by
service
MySQL error code 129: Undefined handler error 129
OS error code 130: Owner died
MySQL error code 130: Incorrect file format
OS error code 131: State not
recoverable
MySQL error code 131: Command not supported by database
MySQL error code 132: Old database file
MySQL error code 133: No record read before update
MySQL error code 134: Record was already deleted (or record
file crashed)
MySQL error code 135: No more room in record file
MySQL error code 136: No more room in index file
MySQL error code 137: No more records (read after end of
file)
MySQL error code 138: Unsupported extension used for
table
MySQL error code 139: Too big row
MySQL error code 140: Wrong create options
MySQL error code 141: Duplicate unique key or constraint on
write or update
MySQL error code 142: Unknown character set used in
table
MySQL error code 143: Conflicting table definitions in
sub-tables of MERGE table
MySQL error code 144: Table is crashed and last repair
failed
MySQL error code 145: Table was marked as crashed and should
be repaired
MySQL error code 146: Lock timed out; Retry transaction
MySQL error code 147: Lock table is full;
Restart program with a larger locktable
MySQL error code 148: Updates are not allowed under a read
only transactions
MySQL error code 149: Lock deadlock; Retry transaction
MySQL error code 150: Foreign key constraint is incorrectly
formed
MySQL error code 151: Cannot add a child row
MySQL error code 152: Cannot delete a parent row
MySQL error code 153: No savepoint with that name
MySQL error code 154: Non unique key block size
MySQL error code 155: The table does not exist in engine
MySQL error code 156: The table already existed in storage
engine
MySQL error code 157: Could not connect to storage
engine
MySQL error code 158: Unexpected null pointer found when using
spatial index
MySQL error code 159: The table changed in storage
engine
MySQL error code 160: There's no partition in table for the
given value
MySQL error code 161: Row-based binlogging of row failed
MySQL error code 162: Index needed in foreign key
constraint
MySQL error code 163: Upholding foreign key constraints would
lead to a duplicate key error in some other table
MySQL error code 164: Table needs to be upgraded before it can
be used
MySQL error code 165: Table is read only
MySQL error code 166: Failed to get next auto increment
value
MySQL error code 167: Failed to set row auto increment
value
MySQL error code 168: Unknown (generic) error from
engine
MySQL error code 169: Record is the same
MySQL error code 170: It is not possible to log this
statement
MySQL error code 171: The event was corrupt, leading to
illegal data being read
MySQL error code 172: The table is of a new format not
supported by this version
MySQL error code 173: The event could not be processed no
other hanlder error happened
MySQL error code 174: Got a fatal error during initialzaction
of handler
MySQL error code 175: File to short; Expected more data in
file
MySQL error code 176: Read page with wrong checksum
MySQL error code 177: Too many active concurrent
transactions
[root@jfht ~]#