小弟近几日在虚拟机环境为centOS7 源码编译安装mysql一直出现了无法找到pid,经过了上网查找发现无非就是以下几点:
1.没有目录访问权限。
2.存在僵尸进程(解决方式查看ps -ef|grep mysql 进行删除僵尸进程kill -9 进程编号)
3.enforce问题使用setenforce 0
4.查看service mysql status 查看发现多了一个莫名奇妙文件删除。
5.删除etc底下的my.cnf
发现以上1.2.3.4点都错误了,主要原因网上下载的mysql5.7源码包编译安装并没有提供my.cnf的相关支持文件。而编译的时候配置参数固定了导致读取自己设置的my.cnf无法重新定义目录而找不到相应的文件。同时在重启mysql中修改了my.cnf的socket文件目录文件无法在指定目录生成socket文件。
小弟只是解决了mysql启动问题但是还是无法修改my.cnf的socket目录求解
一、解决var/run/mysqld没有pid和sock文件
MySQL下mysql.sock丢失丢失的原因一般是因为配置文件不一致的原因,mysqld 错误启动,mysqld_safe 会清除一次mysql.sock 。解决方法是:
判断一般人解决故障时没有切换到mysql用户,造成权限有问题,无法创建mysql授权表,所以也就无法创建/tmp/mysql.sock 和hostname.pid文件。因此,总结解决方法如下:
#su mysql // root 用户也是可以的
$/usr/local/bin/mysql_install_db //到bin目录执行,重建授权表
$/usr/local/bin/mysqld_safe &
mysql -uroot -p
mysq>bye;
文件已经解决,重新生成新的 /tmp/mysql.sock 和 hostname.pid
var/
$su root
二、解决mysql.sock文件路径不对
1.在/var/lib/mysql创建一个link:ln -s /var/lib/mysql/mysql.sock /path/to/mysql/mysql.sock
2.在root权限下修改my.cnf文件(/etc/mysql/my.cnf),指定正确的路径
三、mysql配置文件、配置过高 性能跟不上导致无法创建 SERVICE PID 文件