无故出现 mysql dead but subsys locked的问题

/ 0评 / 0

问题描述:
1.mysql安装完成后,使用
service mysqld restart
总是出现stop mysqld service 失败。
2.使用mysql -uroot -p登录出现找不到 /var/lib/mysql/mysql.sock问题。
3.使用service mysqld status出现 mysql dead but subsys locked

解决方法:
大多数mysql都是rpm方式安装的。它会自动寻找/var/lib/mysql/mysql.sock这个文件。
1.首先检查mysql.sock的位置。
通过/etc/my.cnf中的socket的字段。

如果没有/etc/my.cnf这个文件也会提示 Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)。方法是把查找服务器my.cnf的路径,复制到/etc/目录下即可。
如果socket如下所示:

socket=/tmp/mysql.sock

如果无法找到mysql.sock文件或丢失

可以执行

#mysqld_safe
#mysql

2.为mysql.sock增加软连接(相当于windows中的快捷方式)。比如实际的mysql.sock在/tmp/下。
则运行如下命令。

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

3.如果上述两种方法都不生效。那么使用
3.1 service mysqld restart
3.2 service mysqld status
如果出现 mysql dead but subsys locked
4.方法 1
4.1 service mysqld stop (停止服务)
4.2 rm -fr /var/lib/mysql/* (删除/var/lib/mysql下的所有文件)
4.3 rm /var/lock/subsys/mysqld(删除锁定文件)
4.4 killall mysqld (杀死所有mysqld进程)
4.5 service mysql start (启动mysql服务。)
5.方法2
5.1 查看日志文件
cat /var/log/mysqld.log
5.2 停止服务
service mysqld stop
5.3 查看mysql进程
ps -aux|grep -i ^mysql
5.4 结束进程
killall mysql
5.5 删除/var/lib/mysql/*
rm -Rf /var/lib/mysql/*
5.6 查看mysql的全局配置文件
cat /et/my.cnf
5.7 拷贝预配置好的阳历服务器选项文件,/etc/mysql全局配置文件优先级大于服务器选项文件,但这里有更多的选项。
cp /usr/share/doc/mysql-server-?.??.??/my-small.cnf /var/lib/mysql
5.8 重新创建初始数据库
mysql_install_db
5.9 检查和设置服务的运行级别。
chkconfig –level 345 mysqld on
chkconfig –list mysqld
5.10 启动服务
service mysqld restart
5.11 查看日志文件
cat /var/log/mysqld.log
大家注意4或5使用1种即可。

评论已关闭。