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啟動失敗內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 詳解MySQL中的pid與socket
- 從mysql讀寫分離著手提升服務器性能
- 如何避免mysql啟動時錯誤及sock文件作用分析
- mysql sock 文件解析及作用講解
- Docker部署Mysql8的實現步驟