报错
[root@localhost mysql]# /etc/init.d/mysqld start
Starting MySQL... ERROR! The server quit without updating PID file (/data/mysql/localhost.localdomain.pid).
方法:
最好的方法就是查看错误日志,例如我的问题
[root@localhost log]# tail -100f /var/log/mysql_error.log
2018-01-31T08:12:27.434981Z 0 [Note] - '::' resolves to '::';
2018-01-31T08:12:27.434995Z 0 [Note] Server socket created on IP: '::'.
2018-01-31T08:12:27.435023Z 0 [ERROR] Could not create unix socket lock file /usr/local/mysql/mysql.sock.lock.
2018-01-31T08:12:27.435029Z 0 [ERROR] Unable to setup unix socket lock file.
2018-01-31T08:12:27.435034Z 0 [ERROR] Aborting
我的问题明显就是无法创建socket文件,所以也就是权限不够,给文件目录权限就可以了
[root@localhost mysql]# chown -R mysql:mysql /usr/local/mysql
[root@localhost mysql]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
下面的是我看到其他人整理的,我感觉非常好,借鉴一下
1.可能是/usr/local/mysql/data/rekfan.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,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !http://blog.rekfan.com/?p=186
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后存盘退出重启机器试试。
第一次写,主要是给自己做笔记,顺便熟练一下,如果不好,请多多包涵,一过即可。