1. 程式人生 > 資料庫 >CentOS 7中升級MySQL 5.7.23的坑與解決方法

CentOS 7中升級MySQL 5.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 [email protected]

2、安裝包修復方法,修改下面兩個原始檔,將5000增加到65535,重新打包釋出,這樣新版本預設會保持與MySQL5.6.21相同的配置

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對我們的支援。