今日重启虚拟主机后,发现MYSQL没起来。于是开始查,环境(LNMP,centos6.8)
- 查看mysql状态,发现没有起来,有报错:/var/lock/subsys/mysql[FAILED]
[root@web130 var]# service mysql status
MySQL is not running, but lock file (/var/lock/subsys/mysql[FAILED]
2.启动mysql试试,发现起不来,有报错:The server quit without updating PID file (/[FAILED]
[root@web130 ~]# service mysql start
Starting MySQL.The server quit without updating PID file (/[FAILED]l/mysql/var/web130.tang.com.pid).
3.查看mysql日志,默认mysql使用错误日志名 host_name.err 并在数据目录中写入日志文件,LNMP环境mysql数据库文件和错误日志在:/usr/local/mysql/var/ 这个目录下,发现:File './mysql-bin.~rec~' not found (Errcode: 13),提示:MYSQL_BIN_LOG::open_purge_index_file failed to open register file,通过网络查阅得知可能是无权限。4
[root@web130 var]# tail -fn50 web130.tang.com.err
/usr/local/mysql/bin/mysqld: File './mysql-bin.~rec~' not found (Errcode: 13)
190125 3:22:17 [ERROR] MYSQL_BIN_LOG::open_purge_index_file failed to open register file.
190125 3:22:17 [ERROR] MYSQL_BIN_LOG::open_index_file failed to sync the index file.
190125 3:22:17 [ERROR] Aborting
190125 3:22:17 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
4.查看文件权限,发现var目录里的文件权限正常!
[root@web130 var]# ll
total 84112
drwx------ 2 mysql mysql 4096 Dec 4 2017 cms
-rw-rw---- 1 mysql mysql 18874368 Jan 14 00:05 ibdata1
-rw-rw---- 1 mysql mysql 33554432 Jan 14 00:05 ib_logfile0
-rw-rw---- 1 mysql mysql 33554432 Nov 6 2017 ib_logfile1
-rw-rw---- 1 mysql mysql 41416 Dec 27 2017 localhost.localdomain.err
drwx------ 2 mysql mysql 4096 Nov 6 2017 mysql
-rw-rw---- 1 mysql mysql 29155 Jan 13 20:42 mysql-bin.000049
-rw-rw---- 1 mysql mysql 2728 Jan 13 23:44 mysql-bin.000050
-rw-rw---- 1 mysql mysql 38 Jan 14 04:44 mysql-bin.index
drwx------ 2 mysql mysql 4096 Nov 6 2017 performance_schema
drwx------ 2 mysql mysql 4096 Dec 6 2017 tylw
-rw-rw---- 1 mysql mysql 1313 Dec 27 2017 web130.err
-rw-rw---- 1 mysql mysql 24625 Jan 24 22:18 web130.tang.com.err
5.陷入思索和搜索中,想起在windows下经常发生文件有权限而目录没给权限导致无法写入的事情,于是查看年了var目录的权限。发现var目录属性被改了,不是mysql:mysql这属性了,想起上次测试把var目录删除重建过,导致属性没有加上。于是改回这个属性,再重启正常!
[root@web130 var]# cd ..
[root@web130 mysql]# ll
total 80
drwxr-xr-x. 2 root mysql 4096 Nov 6 2017 bin
-rw-r--r--. 1 root mysql 17987 Apr 27 2017 COPYING
drwxr-xr-x. 3 root mysql 4096 Jan 14 02:34 data
drwxr-xr-x. 2 root mysql 4096 Nov 6 2017 docs
drwxr-xr-x. 3 root mysql 4096 Nov 6 2017 include
-rw-r--r--. 1 root mysql 301 Apr 27 2017 INSTALL-BINARY
drwxr-xr-x. 3 root mysql 4096 Nov 6 2017 lib
drwxr-xr-x. 4 root mysql 4096 Nov 6 2017 man
drwxr-xr-x. 10 root mysql 4096 Nov 6 2017 mysql-test
-rw-r--r--. 1 root mysql 2496 Apr 27 2017 README
drwxr-xr-x. 2 root mysql 4096 Nov 6 2017 scripts
drwxr-xr-x. 27 root mysql 4096 Nov 6 2017 share
drwxr-xr-x. 4 root mysql 4096 Nov 6 2017 sql-bench
drwxr-xr-x. 2 root mysql 4096 Nov 6 2017 support-files
drwxr-xr-x 7 root root 4096 Jan 24 22:18 var
drwxr-xr-x 7 root root 4096 Jan 14 01:36 varbak
可以看到上面var文件夹属性变成了root:root,都是删除再新建忘记加属性的错!重新加属性就好了
[root@web130 mysql]# chown -R mysql:mysql var
[root@web130 mysql]# ll
total 80
drwxr-xr-x. 2 root mysql 4096 Nov 6 2017 bin
-rw-r--r--. 1 root mysql 17987 Apr 27 2017 COPYING
drwxr-xr-x. 3 root mysql 4096 Jan 14 02:34 data
drwxr-xr-x. 2 root mysql 4096 Nov 6 2017 docs
drwxr-xr-x. 3 root mysql 4096 Nov 6 2017 include
-rw-r--r--. 1 root mysql 301 Apr 27 2017 INSTALL-BINARY
drwxr-xr-x. 3 root mysql 4096 Nov 6 2017 lib
drwxr-xr-x. 4 root mysql 4096 Nov 6 2017 man
drwxr-xr-x. 10 root mysql 4096 Nov 6 2017 mysql-test
-rw-r--r--. 1 root mysql 2496 Apr 27 2017 README
drwxr-xr-x. 2 root mysql 4096 Nov 6 2017 scripts
drwxr-xr-x. 27 root mysql 4096 Nov 6 2017 share
drwxr-xr-x. 4 root mysql 4096 Nov 6 2017 sql-bench
drwxr-xr-x. 2 root mysql 4096 Nov 6 2017 support-files
drwxr-xr-x 7 mysql mysql 4096 Jan 24 22:18 var
[root@web130 mysql]# service mysql start
Starting MySQL... [ OK ]
搜索发现以前的版本Errcode: 13 会提示是权限问题,不知道这个会不会有其他错误提示。