mysql 启动错误(InnoDB: Operating system error number 13 )                  

环境:mysq 5.6.35、centos 7.3

问题描述:

今天下午开发过来说开发库无法连接了,登录服务器后发现mysql进程down了

启动mysql:

 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

启动时报错,无法正常启动mysql

查询告警日志文件

如果错误信息如下

2018-07-03 15:19:11 7f6e0dc9e700  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
2018-07-03 15:19:11 7f6e0dc9e700  InnoDB: Assertion failure in thread 140110654465792 in file fil0fil.cc line 875
InnoDB: Failing assertion: ret
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
07:19:11 UTC - mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.

key_buffer_size=8388608
read_buffer_size=262144
max_used_connections=5
max_threads=1024
thread_count=3
connection_count=3
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 545584 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x511a8b0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7f6e0dc9de90 thread_stack 0x30000
/usr/local/mysql/bin/mysqld(my_print_stacktrace+0x35)[0x9122f5]
/usr/local/mysql/bin/mysqld(handle_fatal_signal+0x3d8)[0x675f18]
/lib64/libpthread.so.0(+0xf370)[0x7f6e7ca9a370]
/lib64/libc.so.6(gsignal+0x37)[0x7f6e7b6991d7]
/lib64/libc.so.6(abort+0x148)[0x7f6e7b69a8c8]
/usr/local/mysql/bin/mysqld[0xa74431]
/usr/local/mysql/bin/mysqld[0xa7462b]
/usr/local/mysql/bin/mysqld[0xa7d319]
/usr/local/mysql/bin/mysqld[0xa480f0]
/usr/local/mysql/bin/mysqld[0xa489cb]
/usr/local/mysql/bin/mysqld[0xa36643]
/usr/local/mysql/bin/mysqld[0xa2177f]
/usr/local/mysql/bin/mysqld[0x9cb948]
/usr/local/mysql/bin/mysqld[0x92cf30]
/usr/local/mysql/bin/mysqld[0x924799]
/usr/local/mysql/bin/mysqld[0x92cc69]
/usr/local/mysql/bin/mysqld(_ZN7handler11ha_rnd_nextEPh+0x64)[0x58cf54]
/usr/local/mysql/bin/mysqld(_Z13rr_sequentialP11READ_RECORD+0x37)[0x841ba7]
/usr/local/mysql/bin/mysqld(_Z10sub_selectP4JOINP13st_join_tableb+0x10f)[0x6d472f]
/usr/local/mysql/bin/mysqld(_ZN4JOIN4execEv+0x435)[0x6d21e5]
/usr/local/mysql/bin/mysqld[0x719839]
/usr/local/mysql/bin/mysqld(_Z12mysql_selectP3THDP10TABLE_LISTjR4ListI4ItemEPS4_P10SQL_I_ListI8st_orderESB_S7_yP13select_resultP18st_select_lex_unitP13st_select_lex+0xbc)[0x719b6c]
/usr/local/mysql/bin/mysqld(_Z13handle_selectP3THDP13select_resultm+0x184)[0x719d84]
/usr/local/mysql/bin/mysqld[0x6f3da9]
/usr/local/mysql/bin/mysqld(_Z21mysql_execute_commandP3THD+0x3ab7)[0x6f9457]
/usr/local/mysql/bin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x377)[0x6fcb77]
/usr/local/mysql/bin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x19ed)[0x6fec8d]
/usr/local/mysql/bin/mysqld(_Z10do_commandP3THD+0xd7)[0x7000e7]
/usr/local/mysql/bin/mysqld(_Z24do_handle_one_connectionP3THD+0x116)[0x6c6ca6]
/usr/local/mysql/bin/mysqld(handle_one_connection+0x45)[0x6c6d85]
/usr/local/mysql/bin/mysqld(pfs_spawn_thread+0x126)[0xae5796]
/lib64/libpthread.so.0(+0x7dc5)[0x7f6e7ca92dc5]
/lib64/libc.so.6(clone+0x6d)[0x7f6e7b75b76d]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7f6db4013740): is an invalid pointer
Connection ID (thread ID): 194
Status: NOT_KILLED

The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.

通过上述报错日志内容分析可能是权限导致的

错误13说明没有权限。使用命令

chmod -R 777  可以解决

[root@dev mysql]# chmod -R 777 /usr/local/mysql/
[root@dev mysql]# chown -R mysql:mysql /usr/local/mysql/


[root@dev mysql]# chmod -R 777 /mysql/data/
[root@dev mysql]# chown -R mysql:mysql /mysql/data/


提示一下:这个error number 就是系统的错误号,也是程序里的errorno

附上linux的 错误码信息


errno.00 is: Success    成功
errno.01 is: Operation not permitted         不允许此类操作
errno.02 is: No such file or directory         没有此文件或目录
errno.03 is: No such process                    没有此进程
errno.04 is: Interrupted system call           中断系统调用
errno.05 is: Input/output error                   输入输出错误
errno.06 is: No such device or address    没有此设备或地址
errno.07 is: Argument list too long            参数过长
errno.08 is: Exec format error                   执行格式错误
errno.09 is: Bad file descriptor                  无效的文件描述符
errno.10 is: No child processes                 不存在子进程
errno.11 is: Resource temporarily unavailable   资源暂时不可用
errno.12 is: Cannot allocate memory         分配内存失败
errno.13 is: Permission denied                   权限错误
errno.14 is: Bad address                           地址错误
errno.15 is: Block device required             块设备请求
errno.16 is: Device or resource busy         设备或资源忙
errno.17 is: File exists                                文件已经存在
errno.18 is: Invalid cross-device link          无效的交叉连接设备
errno.19 is: No such device                       没有此设备
errno.20 is: Not a directory                        不是一个目录
errno.21 is: Is a directory                           是一个目录
errno.22 is: Invalid argument                     参数非法
errno.23 is: Too many open files in system    系统打开文件太多
errno.24 is: Too many open files               打开文件太多
errno.25 is: Inappropriate ioctl for device          设备部支持该操作
errno.26 is: Text file busy                           文本文件忙
errno.27 is: File too large                           文件太大
errno.28 is: No space left on device            设备没有空间,一般为存储设备
errno.29 is: Illegal seek                               非法的seek操作
errno.30 is: Read-only file system               只读文件系统
errno.31 is: Too many links                         太多连接
errno.32 is: Broken pipe                              管道破裂
errno.33 is: Numerical argument out of domain          数值参数超出取值范围
errno.34 is: Numerical result out of range                  数值结果超出取值范围
errno.35 is: Resource deadlock avoided                   资源死锁
errno.36 is: File name too long                        文件名太长
errno.37 is: No locks available                         没有可用的锁
errno.38 is: Function not implemented            函数没有执行
errno.39 is: Directory not empty                      目录非空
errno.40 is: Too many levels of symbolic links 太多级符号连接
errno.41 is: Unknown error 41                         41未知错误
errno.42 is: No message of desired type         不被接受的消息类型
errno.43 is: Identifier removed                        标识符已被删除
errno.44 is: Channel number out of range     。。。
errno.45 is: Level 2 not synchronized
errno.46 is: Level 3 halted
errno.47 is: Level 3 reset
errno.48 is: Link number out of range
errno.49 is: Protocol driver not attached
errno.50 is: No CSI structure available
errno.51 is: Level 2 halted
errno.52 is: Invalid exchange
errno.53 is: Invalid request descriptor
errno.54 is: Exchange full
errno.55 is: No anode
errno.56 is: Invalid request code
errno.57 is: Invalid slot
errno.58 is: Unknown error 58
errno.59 is: Bad font file format
errno.60 is: Device not a stream
errno.61 is: No data available
errno.62 is: Timer expired
errno.63 is: Out of streams resources
errno.64 is: Machine is not on the network
errno.65 is: Package not installed
errno.66 is: Object is remote
errno.67 is: Link has been severed
errno.68 is: Advertise error
errno.69 is: Srmount error
errno.70 is: Communication error on send
errno.71 is: Protocol error
errno.72 is: Multihop attempted
errno.73 is: RFS specific error
errno.74 is: Bad message
errno.75 is: Value too large for defined data type
errno.76 is: Name not unique on network
errno.77 is: File descriptor in bad state
errno.78 is: Remote address changed
errno.79 is: Can not access a needed shared library
errno.80 is: Accessing a corrupted shared library
errno.81 is: .lib secion in a.out corrupted
errno.82 is: Attempting to link in too many shared libraries
errno.83 is: Cannot exec a shared library directly
errno.84 is: Invalid or incomplete multibyte or wide character
errno.85 is: Interrupted system call should be restarted
errno.86 is: Streams pipe error
errno.87 is: Too many users
errno.88 is: Socket operation on non-socket
errno.89 is: Destination address required
errno.90 is: Message too long
errno.91 is: Protocol wrong type for socket
errno.92 is: Protocol not available
errno.93 is: Protocol not supported
errno.94 is: Socket type not supported
errno.95 is: Operation not supported
errno.96 is: Protocol family not supported
errno.97 is: Address family not supported by protocol
errno.98 is: Address already in use
errno.99 is: Cannot assign requested address
errno.100 is: Network is down
errno.101 is: Network is unreachable
errno.102 is: Network dropped connection on reset
errno.103 is: Software caused connection abort
errno.104 is: Connection reset by peer
errno.105 is: No buffer space available
errno.106 is: Transport endpoint is already connected
errno.107 is: Transport endpoint is not connected
errno.108 is: Cannot send after transport endpoint shutdown
errno.109 is: Too many references: cannot splice
errno.110 is: Connection timed out
errno.111 is: Connection refused
errno.112 is: Host is down
errno.113 is: No route to host
errno.114 is: Operation already in progress
errno.115 is: Operation now in progress
errno.116 is: Stale NFS file handle
errno.117 is: Structure needs cleaning
errno.118 is: Not a XENIX named type file
errno.119 is: No XENIX semaphores available
errno.120 is: Is a named type file
errno.121 is: Remote I/O error
errno.122 is: Disk quota exceeded
errno.123 is: No medium found
errno.124 is: Wrong medium type
errno.125 is: Operation canceled
errno.126 is: Required key not available
errno.127 is: Key has expired
errno.128 is: Key has been revoked
errno.129 is: Key was rejected by service
errno.130 is: Owner died
errno.131 is: State not recoverable
errno.132 is: Unknown error 132
132-255全是Unknown error

windows的错误码信息


Number Macro Description
1 ERROR_INVALID_FUNCTION Incorrect function.
2 ERROR_FILE_NOT_FOUND The system cannot find the file specified.
3 ERROR_PATH_NOT_FOUND The system cannot find the path specified.
4 ERROR_TOO_MANY_OPEN_FILES The system cannot open the file.
5 ERROR_ACCESS_DENIED Access is denied.
6 ERROR_INVALID_HANDLE The handle is invalid.
7 ERROR_ARENA_TRASHED The storage control blocks were destroyed.
8 ERROR_NOT_ENOUGH_MEMORY Not enough storage is available to process this command.
9 ERROR_INVALID_BLOCK The storage control block address is invalid.
10 ERROR_BAD_ENVIRONMENT The environment is incorrect.
11 ERROR_BAD_FORMAT An attempt was made to load a program with an incorrect format.
12 ERROR_INVALID_ACCESS The access code is invalid.
13 ERROR_INVALID_DATA The data is invalid.
14 ERROR_OUTOFMEMORY Not enough storage is available to complete this operation.
15 ERROR_INVALID_DRIVE The system cannot find the drive specified.
16 ERROR_CURRENT_DIRECTORY The directory cannot be removed.
17 ERROR_NOT_SAME_DEVICE The system cannot move the file to a different disk drive.
18 ERROR_NO_MORE_FILES There are no more files.
19 ERROR_WRITE_PROTECT The media is write protected.
20 ERROR_BAD_UNIT The system cannot find the device specified.
21 ERROR_NOT_READY The device is not ready.
22 ERROR_BAD_COMMAND The device does not recognize the command.
23 ERROR_CRC Data error (cyclic redundancy check).
24 ERROR_BAD_LENGTH The program issued a command but the command length is incorrect.
25 ERROR_SEEK The drive cannot locate a specific area or track on the disk.
26 ERROR_NOT_DOS_DISK The specified disk or diskette cannot be accessed.
27 ERROR_SECTOR_NOT_FOUND The drive cannot find the sector requested.
28 ERROR_OUT_OF_PAPER The printer is out of paper.
29 ERROR_WRITE_FAULT The system cannot write to the specified device.
30 ERROR_READ_FAULT The system cannot read from the specified device.
31 ERROR_GEN_FAILURE A device attached to the system is not functioning.
32 ERROR_SHARING_VIOLATION The process cannot access the file because it is being used by another process.
33 ERROR_LOCK_VIOLATION The process cannot access the file because another process has locked a portion of the file.
34 ERROR_WRONG_DISK The wrong diskette is in the drive. Insert %2 (Volume Serial Number: %3) into drive %1.
36 ERROR_SHARING_BUFFER_EXCEEDED Too many files opened for sharing.
38 ERROR_HANDLE_EOF Reached the end of the file.
39 ERROR_HANDLE_DISK_FULL The disk is full.
87 ERROR_INVALID_PARAMETER The parameter is incorrect.
112 ERROR_DISK_FULL The disk is full.
123 ERROR_INVALID_NAME The file name, directory name, or volume label syntax is incorrect.
1450 ERROR_NO_SYSTEM_RESOURCES Insufficient system resources exist to complete the requested service