出现这种问题,mysql 启报错报:The server quit without updating PID file,
主要解决思路是看mysql错误日志。
1、第一步 在配置文件添加error log
vi /etc/my.cnf
然后在配置文件中添加error log 如下:
[mysqld_safe]
log-error = /var/run/mysqld/logs/error.log
2、创建error log 目录与文件
创建目录:
mkdir /var/run/mysqld/logs
创建error.log文件:
touch /var/run/mysqld/logs/error.log
对目录和文件授权
chown -R mysql:mysql /usr/run/mysqld chmod -R 755 /usr/run/mysqld
3、启动mysql 服务器:
service mysqld start
4、接着查看error log信息
cat /var/run/mysqld/logs/error.log
最后再根据错误信息去解决问题。
PS: 如果error.log 没有写入错误信息,可能是error.log 不存在或者没对目录与文件授权,就操作上面第二个步骤所说的命令即可。
其实解决问题与错误,要根据对应的错误信息去解决错误,需要对症下药,所以需要查看mysql的error.log 信息。
下面列罗可能错误问题及解决方法:
用df命令查了下,果然磁盘满了,因为当时分区采用系统默认,不知道为什么不能自动扩容!以后在处理这个问题!如图所示:
删除了些没用的日志后,重新启动数据库还是出错。
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在启动时没有指定配置文件时会使用vi /etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
5、skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
6、错误日志目录不存在
解决方法:创建目录与文件,使用“chown” “chmod”命令赋予mysql所有者及权限
错误日志目录可通过vi /etc/my.cnf 看配置文件错误日志目录与文件,如下:
[mysqld_safe]
log-error = /var/run/mysqld/logs/error.log
创建目录:
mkdir /var/run/mysqld/logs
创建文件:
touch /var/run/mysqld/logs/error.log
对目录与文件授权:
chown -R mysql:mysql /usr/run/mysqld chmod -R 755 /usr/run/mysqld
7、selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
8、
chown -R mysql.mysql /tmp
PS:查看MySQL运行与错误日志。
下面介绍mysql几个基本命名:
1、启动mysql
mysql 5.0 版本:
service mysqld start
mysql 5.7 版本:
service mysql start
2、停止mysql
mysql 5.0 版本:
service mysqld stop
mysql 5.7 版本:
service mysql stop
3、重新启动mysql
mysql 5.0 版本:
service mysqld restart
mysql 5.7 版本:
service mysql restart
4、查看mysql 状态
mysql 5.0 版本:
service mysqld status
mysql 5.7 版本:
service mysql status