linux mysql5.7启动失败/tmp/mysql.sock ?

Do you already have another mysqld server running
on socket: /tmp/mysql.sock ?

这句话的意思是你已经运行了一个mysql服务,但是,通过查看进行查看进程没有运行mysql服务,我执行service mysqld start后,说找不到localhost.localdomain.pid这个文件,正常mysql服务启动后,会生成这个文件,文件内容是一个mysql正在运行的pid号,每次运行都会生成一个(新pid号回替换旧的pid号)

问题分析:
我想把mysql的root密码修改一下,修改完后,重新启动mysql服务(service mysqld start)就启动不起来了。查看进程,也没有mysql进程。

首先,既然,在mysql的data目录下面需要localhost.localdomain.pid这个文件,我自己手动创建一个就好了对吧!vim localhost.localdomain.pid,但是有个问题,文件可以手动创建,但是文件内容的pid号我去哪里找呢?对吧!

/tmp/mysql.sock ?这个异常信息里面提示一个mysql.sock,就去看了一下,这个文件无权限查看,同时,在这个目录下面还有一个mysql.sock.lock这个文件。

#编辑` mysql.sock.lock`这个文件
vim mysql.sock.lock
文件内容:5158
#查看运行mysqlpid号是什么?
 cat /app/mysql-5.7.25/data/localhost.localdomain.pid 
 文件内容:5158
是一样的对吧

注:这个论证是我把mysql.sock.lock这个文件中的pid号,复制到
/app/mysql-5.7.25/data/localhost.localdomain.pid中后,经过测试,mysql又可以正常启动了。

通过上面的分析关于mysql启动不起来的场景,如果和/app/mysql-5.7.25/data/localhost.localdomain.pid号有关,一般就会出现2种场景:
第一种:权限不足
解决方案:赋予权限即可

第二种:错误操作,mysql启动不起来,/app/mysql-5.7.25/data/localhost.localdomain.pid此文件自动删除了。
解决方案:
在mysql的data目录下面创建/app/mysql-5.7.25/data/localhost.localdomain.pid

找到mysql.sock.lock这个文件的路径,编辑同级目录下的mysql.sock.lock这个文件,复制里面的pid号,粘贴到/app/mysql-5.7.25/data/localhost.localdomain.pid文件中,重新启动mysql即可

你可能感兴趣的:(Mysql,pid锁住)