前言
最近發現CentOS 7下升級MySQL5.7.23的一個坑,以前面升級到MySQL 5.7.23的一個集群為例

在我們環境下打開文件描述符個數的參數open_files_limit在MySQL 5.6.21下都統一配置為65535,而CentOS 7系統下安裝MySQL5.7.23的open_files_limit參數的默認值為5000
否則像分區表數量較多的集群,打開的文件個數過大時,數據庫就會報錯。
原因如下:
1、CentOS 7安裝MySQL5.7.23,服務管理發生了變化,從sysvinit(service mysql start)變化為systemd(systemctl start mysqld.service)
2、CentOS 7下Limit的配置由下面配置文件來決定
全局設置:/etc/systemd/system.conf(如DefaultLimitNOFILE=65535)

服務設置:[Service]默認值為5000,應該將LimitNOFILE修改為65535

【測試】
1、全局配置文件/etc/systemd/system.conf
2、service配置文件/usr/lib/systemd/system/mysqld.service
3、mysql配置文件/etc/my.cnf
【結論】
1、當以systemd管理mysql服務時,在下面3個配置文件中同時制定open_files_limit參數時,最終會以service配置文件為準
2、當service相關配置值注釋掉時,會以全局配置文件為準
【解決方案】
1、單臺修復方法,按下面步驟
#修改配置
vim /usr/lib/systemd/system/mysqld.service
#重載
systemctl daemon-reload
#重啟服務生效
systemctl restart mysqld@replica01.service
2、安裝包修復方法,修改下面兩個源文件,將5000增加到65535,重新打包發布,這樣新版本默認會保持與MySQL5.6.21相同的配置

總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- MySQL 5.7.30 安裝與升級問題詳細教程
- Docker版的MySQL5.7升級到MySQL8.0.13,數據遷移
- phpstudy2018升級MySQL5.5為5.7教程(圖文)
- 升級到MySQL5.7后開發不得不注意的一些坑
- 實戰MySQL升級的最佳方法
- phpStudy中升級MySQL版本到5.7.17的方法步驟
- Win下Mysql5.6升級到5.7的方法
- Windows(x86,64bit)升級MySQL 5.7.17免安裝版的詳細教程
- MySQL數據庫升級的一些"陷阱"