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 [email protected]

2、安装包修复方法,修改下面两个源文件,将5000增加到65535,重新打包发布,这样新版本默认会保持与MySQL5.6.21相同的配置

原文地址:https://www.cnblogs.com/wangdong/p/9805943.html

时间: 2024-08-28 18:49:58

CentOS 7下升级MySQL5.7.23的一个坑的相关文章

CentOS 6 下升级安装Mysql 5.5 完整步骤

使用系统CentOS 6.2本来已经系统自带安装了mysql 5.1,但是奈何5.1不支持utf8mb4字符集(详见:http://blog.csdn.net/shootyou/article/details/8236024 ),只能想办法将Mysql升级到5.5. 这果然是一次蛋疼的升级过程. 完整步骤: 1.首先备份数据,虽说成功的升级数据不会丢失,但是保险起见备份下. mysqldump -u xxx -h xxx -P 3306 -p --all-databases > database

在centos 7下升级内核

? 前言 今天读了一篇老外的文章,讲的是如何在linux环境下升级内核.比较暴力,比较简单,故做个记录. ? 文章中,作者先列出一个常识:linux是内核名,不是系统名.我们平时说的"linux系统"是错的,准确的说法是:"基于linux内核进行开发的各式操作系统".好吧,膝盖中箭~ ? 言归正传,说回怎么升级内核. ? ? 步骤 1. 查看当前内核 uname -sr 当然,我用另一台机做测试的,这里只是截取版本号. ? 2. 使用elrepo进行内核升级,我们先

linux(CentOS)下升级python3.5.2

centOS下的Python版本一般都比较低,很多应用都需要升级python来完成.我装的centOS的默认的python版本是V2.6.3,但运行node.js需要的版本是2.5以上. 1.下载python3.3安装包: yum install readline-devel.x86_64 wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 2.解压安装包:tar -zxvf Python-3.5.2.tgz 3.进入解压后

centos系统下安装MySQL5.7.18

1.首先安装依赖包 yum install -y gcc gcc-c++ ncurses-devel perl openssl-devel 最最重要的是,不要忘了安装openssl-devel 2.安装cmake tar -xzvf cmake-3.8.1.tar.gz   cd cmake-3.8.1  ./bootstrapmake && make install 3.安装MySQL5.7.18 首先下载安装包,本人的安装版本是:mysql-boost-5.7.18.tar.gz 需要

centos 7 下安装mysql5.7

centos下默认安装mariadb数据库 1:将mariadb移除 yum search mysql; yum remove mariadb-libs.x86_64; 2:下载mysql源 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm; 3:安装源 yum localinstall mysql57-community-release-el7-11.noarch.rpm; yum search

[JavaEE]记录一下反向代理下SSO不能正常使用的一个坑

嗯...真的是很久没更新了,感觉有点瓶颈了,学又学不下去,工作要用的东西又没有难度,跳槽又没经验没学历关键是还不会吹也是尴尬... 无意间翻到这个博客,又是好久不更新突然想到了还有这个东西,就发一个最近做的小工具好了 主要是在做的某系统,客户哪里不愿意提供多端口,但是要部署多个应用和单点登录,于是就理所当然的用上了反向代理,然后就被公司内部的sso客户端给坑了... SSO单点登陆一般思路应该是这样: 重定向到单点登录服务器 -> 服务器登陆成功跳回并带上身份标识 -> 项目二次前往单点登陆服

Ubuntu下iptables开放ftp端口的一个坑:227 Entering Passive Mode

事情是这样的,我搭的VSFTP服务器在一次重启后竟然外界连不上了,进去系统查看发现服务在正常运行着:内部也可登上排查发现是防火墙iptables的坑. 原来这个iptables规则是临时的,需要写入并save,不然重启后规则就清空了,造成外界无法登陆. 先说解决办法: iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT iptables -A OUTPUT -p

MySQL5.6 crash-safe replication一个坑

事情起因:唯品会一个DBA找到我,说他们的slave掉电,再重启服务器以后,同步复制就挂了,报1032和1062错误,首先排查了在从库上没有写操作,之后询问了他们的参数. 这是他们的参数: sync_master_info = 1 sync_relay_log_info = 1 relay_log_info_repository = FILE 参数意思是:sql线程每次执行完了一个事务,就会记录在master.info和relay.info文件里.即: START TRANSACTION; --

mysql5.6.23升级到mysql5.7.9

5.7.9新特性 一.安全性 1.1. 用户表 mysql.user 的 plugin字段不允许为空, 默认值是 mysql_native_password,而不是 mysql_old_password,不再支持旧密码格式; 1.2. 增加密码过期机制,过期后需要修改密码,否则可能会被禁用,或者进入沙箱模式; 1.3. 使用mysqld --initialize 初始化,默认会自动生成随机密码,并且不创建除 [email protected] 外的其他账号,也不创建 test 库; 改成 mys