CentOS 7下升級MySQL5.7.23的一個坑


發現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相同的配置

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM