MySQL提示:The server quit without updating PID file问题的解决办法
mysql 5.5
centos 6.5
The server quit without updating PID file /opt/mysql/t1.pid
排除思路:
定位是mysql my.cnf里面出问了。
查看mysql错误日志,主机名.err 可以使用find查找。
160308 11:57:49 mysqld_safe mysqld from pid file /data/mysql/mysql.pid ended
160308 11:59:49 mysqld_safe Starting mysqld daemon with databases from /data/mysql
160308 11:59:50 InnoDB: The InnoDB memory heap is disabled
160308 11:59:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160308 11:59:50 InnoDB: Compressed tables use zlib 1.2.3
160308 11:59:50 InnoDB: Initializing buffer pool, size = 128.0M
160308 11:59:50 InnoDB: Completed initialization of buffer pool
160308 11:59:50 InnoDB: highest supported file format is Barracuda.
160308 11:59:50 InnoDB: Waiting for the background threads to start
160308 11:59:51 InnoDB: 1.1.8 started; log sequence number 13376526
160308 11:59:51 [ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'enforce-gtid-consistency=true' #问题处在这里
160308 11:59:51 [ERROR] Aborting
160308 11:59:51 InnoDB: Starting shutdown...
160308 11:59:51 InnoDB: Shutdown completed; log sequence number 13376526
160308 11:59:51 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
160308 11:59:51 mysqld_safe mysqld from pid file /data/mysql/mysql.pid ended
vim /etc/my.cnf
禁用参数:
#enforce-gtid-consistency=true
#禁用 git-id=on
service mysqld start
问题解决。
警告:
以后再也不要复制粘贴以下这种垃圾信息,一点生产力都没有。根本不能解决问题,复制都嫌占我的空间。
以后保证是一定解决了问题的才发上来。以下浪费你时间了,请多见谅!
告警:
用df命令查了下,果然磁盘满了,因为当时分区采用系统默认,不知道为什么不能自动扩容!以后在处理这个问题!如图所示:
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/vg_snsgou-lv_root
51606140 47734848 1249852 100% /
tmpfs 1953396 88 1953308 1% /dev/shm
/dev/sda1 495844 37062 433182 8% /boot
/dev/mapper/vg_snsgou-lv_home
229694676 191796 217835016 1% /home
[root@snsgou ~]#
删除了些没用的日志后,重新启动数据库还是出错。
MySQL server PID file could not be found![失败]
Starting MySQL...The server quit without updating PID file (/usr/local/mysql/data/snsgou.pid).[失败]
Google了下 ,问题可能的原因有多种,具体什么原因最好的办法是先查看下错误日志:
1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
2、可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
3、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !
4、mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
5、skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
6、错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
7、selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。