最近一次,客戶想要從centos 8.2遷移到收費 Redhat ,有官方自帶的工具
convert2rhel
測試了很多次,都比較成功,
然後正式升級時候出問題了,
因爲官方建議進行yum update升級到最新版本
然後原來mysql 8.0.21 升級到了 8.0.26
但從8.0.16開始,mysqlupgrade的command就不需要了
這個過程直接被合併到了啓動過程裏,
接下來是問題
mysqld.service默認的啓動時間停止的timeout爲5分鐘
這是寫在mysqld.service定義裏的
因爲客戶數據庫很大,170G的數據庫
所以能觀察的現象就是mysql啓動會執行upgrade
但過10分鐘就被系統強行kill掉,然後又會自動重啓mysql(設置也在mysqld.service定義裏)
當然解決方法就是延長啓動停止的timeout
systemctl edit mysqld.service
這個會打開一個空的 vi 來編輯需要覆蓋的mysqld.service參數,
[Service]
TimeoutSec=0
TimeoutSec=0爲無限制
變更後就會覆蓋原來對應mysqld.service設置的一部分設定
然後再次啓動mysql,漫長等待後即升級成功
我等了7小時,甚至覺得已經沒希望了,但最後還是成功了
在這期間你可以看到刀片機的硬盤燈在狂閃,cpu被mysql衝破100%,然後內存的使用在慢慢減少
雖然沒有任何log留下,但他確實在動。。。