Starting MySQL. ERROR! The server quit without updating PID file
今天安装好MySQL数据库后,在启动数据库时提示下面错误:
解决思路:
遇到问题,在错误信息显示得不够完善的情况下,我们第一个应该想到的是看日志;mysql的日志在哪里呢?看“/etc/my.cnf”配置文件中的“log-error=”项,如“log-error=/var/log/mysqld.log”则日志文件在“/var/log/mysqld.log”。
在日志文件中,我们看到了类似下列信息:
1、检查磁盘空间:
使用“df -h”命令查看空间使用情况,尤其是空间占用达到90%以上的:
2、文件系统权限:
mysql的数据目录需要对“mysql”用户有读写执行:
3、selinux权限问题:
如果希望判断是不是由于“selinux”导致的,可以使用“setenforce 0”命令暂时关闭“selinux”,再启动mysql服务试试:
[root@aiezu.com ~]# service mysql start Starting MySQL. ERROR! The server quit without updating PID file (/storage/mysql/aiezu.com.pid).
解决思路:
遇到问题,在错误信息显示得不够完善的情况下,我们第一个应该想到的是看日志;mysql的日志在哪里呢?看“/etc/my.cnf”配置文件中的“log-error=”项,如“log-error=/var/log/mysqld.log”则日志文件在“/var/log/mysqld.log”。
在日志文件中,我们看到了类似下列信息:
2016-11-30 22:53:29 2908 [Note] Plugin 'FEDERATED' is disabled. ^G/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13 - Permission denied) 2016-11-30 22:53:29 2908 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. ... 2016-11-30 22:53:29 2908 [ERROR] InnoDB: os_file_get_status() failed on './ibdata1'. Can't determine file permissions 2016-11-30 22:53:29 2908 [ERROR] InnoDB: The system tablespace must be writable! ...日志中出现了类似“Permission denied”、“Can't determine file permissions”等信息,可以确定是“mysqld”访问文件权限的问题。导致此问题可能的原因有:磁盘空间问题、文件夹权限、setlinux权限的问题,下面是我的解决方法。
1、检查磁盘空间:
使用“df -h”命令查看空间使用情况,尤其是空间占用达到90%以上的:
[root@aiezu.com ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 13G 3.8G 9.2G 30% / devtmpfs 362M 0 362M 0% /dev tmpfs 371M 0 371M 0% /dev/shm tmpfs 371M 9.6M 362M 3% /run tmpfs 371M 0 371M 0% /sys/fs/cgroup /dev/sda1 497M 102M 396M 21% /boot使用“df -i”命令查看“Inode”的使用情况,如果“Inode”不足,也会无法创建文件:
[root@aiezu.com ~]# df -i 文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点 /dev/mapper/centos-root 13598720 41755 13556965 1% / devtmpfs 92526 334 92192 1% /dev tmpfs 94889 1 94888 1% /dev/shm tmpfs 94889 359 94530 1% /run tmpfs 94889 13 94876 1% /sys/fs/cgroup /dev/sda1 512000 329 511671 1% /boot
2、文件系统权限:
mysql的数据目录需要对“mysql”用户有读写执行:
[root@aiezu.com ~]# chown -R mysql.mysql /storage/mysql/ [root@aiezu.com ~]# ll /storage/mysql/ 总用量 110600 -rw-rw----. 1 mysql mysql 12582912 11月 30 17:49 ibdata1 -rw-rw----. 1 mysql mysql 50331648 11月 30 17:49 ib_logfile0 -rw-rw----. 1 mysql mysql 50331648 11月 30 17:48 ib_logfile1 drwx------. 2 mysql mysql 4096 11月 30 17:49 mysql drwx------. 2 mysql mysql 4096 11月 30 17:49 performance_schema drwx------. 2 mysql mysql 6 11月 30 17:48 test
3、selinux权限问题:
如果希望判断是不是由于“selinux”导致的,可以使用“setenforce 0”命令暂时关闭“selinux”,再启动mysql服务试试:
[root@aiezu.com ~]# service mysql start Starting MySQL. ERROR! The server quit without updating PID file (/storage/mysql/aiezu.com.pid). [root@aiezu.com ~]# getenforce Enforcing [root@aiezu.com ~]# setenforce 0 [root@aiezu.com ~]# getenforce Permissive [root@aiezu.com ~]# service mysql start Starting MySQL... SUCCESS!确定是由“selinux”引起后,由于“setenforce 0”只能暂时关闭“selinux”,重启后又会打开,有两种方式解决:
- 在“/etc/sysconfig/selinux”(CentOS7以下版本)或“/etc/selinux/config”(CentOS7及以上版本)文件中将“SELINUX=enforcing”改成“SELINUX=disabled”,永久关闭“selinux”;
- 使用“chcon”命令配置“selinux”,使“selinux”对mysql相关目录开放权限;
[root@aiezu.com ~]# service mysql start Starting MySQL. ERROR! The server quit without updating PID file (/storage/mysql/aiezu.com.pid). [root@aiezu.com ~]# chcon -R -t mysqld_db_t /storage/mysql [root@aiezu.com ~]# service mysql start Starting MySQL. SUCCESS!关于MySQL的SeLinux更多信息,请参考:http://aiezu.com/article/mysql_selinux_config.html