mysq启动失败问题及场景分析

一、一站式解决

 1. 问题分析定位

# 找到mysql的配置文件,复制mysql的数据目录
vim /etc/my.cnf

# 进入msyql的数据目录
cd /data/mysql

# 查看日志文件
vim mysql.err

[error] the server_uuid stored in auto.cnf file is not a valid uuid.
[error] initialization of the server’s uuid failed because it could not be read from the auto.cnf file. if this is a new server, the initialization failed because it was not possible to generate a new uuid.
[error] aborting

从上面日志可以看出,是我的uuid不符合校验,由于我是同一个虚拟机复制的,导致uuid以这样了,修改uuid的值即可

解决方案

find / -iname "auto.cnf"

vim /data/mysql/auto.cnf

# 原内容
[auto]
server-uuid=64cbb3d1-e150-11eb-81a2-000c2972fe1f

# 调整后内容,自定义即可,把最后一位f替换为a
[auto]
server-uuid=64cbb3d1-e150-11eb-81a2-000c2972fe1a


# 重新启动mysql
# centos7.x
systemctl restart mysql

# centos6.x
service myqld restart

二、特殊场景

2.1. 问题分析定位

一般出现这汇总情况就是mysql根目录下面的mysql.pid因为故障原因没了。

cd /data/mysql
ll

2.2. 解决方案

把mysql.pid恢复即可,如果恢复不了,九新建一个名称为mysql.pid的文件,添加mysql运行的pid即可,这个pid在mysql.sock.lock文件中,首先找到mysql.sock.lock的位置。

# 查找my.cnf
find / -iname "my.cnf"

# 查看文件内容
cat /etc/my.cnf

# 找到my.cnf文件的这一行
socket=/tmp/mysql.sock

# 进入到/tmp/
cd /tmp/

# 查看文件的内容
cat mysql.sock.lock

# mysql.sock.lock文件中的9136这个数字就是mysql的运行的pid
# 在mysql的根目录下面创建mysql.pid
vim mysql.pid

# 把刚才的 mysql.sock.lock文件中的9136添加进去
略

# 重启mysql
systemctl restart mysql

# 查看mysql状态
systemctl status mysql

2.3. 解决方案2

这是一种特殊情况,mysql.sock.lock和mysql.pid文件都没有怎么办呢?

# 查找my.cnf
find / -iname "my.cnf"

# 查看文件内容
cat /etc/my.cnf

# 找到my.cnf文件的这一行
socket=/tmp/mysql.sock

# 进入到/tmp/
cd /tmp/

# 查看文件的内容
vim mysql.sock.lock

# 添加一个现系统中,没有用到的pid,如果不知道怎么查,那就随机一个4位数的数字,添加进去。比如说9137

# 在mysql的根目录下面创建mysql.pid
vim mysql.pid

# 将刚才的mysql.sock.lock文件中的0137,添加到mysql.pid文件中,只要保持一致即可
# 重启mysql
systemctl restart mysql

# 查看mysql状态
systemctl status mysql

到此这篇关于mysq启动失败问题及解决方法的文章就介绍到这了,更多相关mysq启动失败内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐