MySQL 打开文件失败问题的解决

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: MySQL 打开文件失败相关的错误主要有如下 3 种

MySQL 打开文件失败相关的错误主要有如下 3 种:

shell> perror 23
OS error code  23:  File table overflow
shell> perror 24
OS error code  24:  Too many open files
shell> perror 11
OS error code  11:  Resource temporarily unavailable

这些错误通常是因为不能为 MySQL 分配足够多的文件描述符造成的。

在 MySQL 数据库里统计已经打开的文件数可以查看状态参数 Open_table_definitions 和 Open_tables ,在 MySQL 8 之后,因为没有 frm 文件,只看 Open_tables 状态参数。具体打开了哪些表可以用 show open tables; 命令进行查看。

在 OS 层查看已经打开的文件数可以用下面的命令:


ls -l /proc/`pidof mysqld`/fd|wc


要解决这些问题通常有两种方法,一种是减少 MySQL 同时打开的文件数量,例如减少参数 table_open_cache 或/和 max_connections 。

另一种方法是增加 MySQL 可以打开的文件数量。增加 MySQL 的参数 open_files_limit ,这个参数比较绕, MySQL 启动时这个参数起作用,在运行的时候系统会自动调整,会根据下面两个公式选择其中一个大的数:


10 + max_connections + (table_open_cache * 2)
max_connections * 5


到 MySQL 8.0.19 版本之后就直接用操作系统的限制了,具体的设置方法要根据操作系统定,linux 是由文件 /etc/security/limits.conf 定。

检查方法是:

cat /proc/`pidof mysqld`/limits |grep "Max open files"


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17天前
|
SQL 关系型数据库 MySQL
|
6天前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
13 2
|
14天前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
31 1
|
29天前
|
SQL 关系型数据库 MySQL
Python小技巧——将CSV文件导入到MySQL数据库
Python小技巧——将CSV文件导入到MySQL数据库
18 0
|
2月前
|
存储 SQL 关系型数据库
mysql体系结构及主要文件
了解MySQL的体系结构和它的主要文件,能够帮助数据库管理员和开发者更好地管理和优化数据库。这对于数据库的正常运行、性能优化、数据恢复和系统维护来说是至关重要的。通过对这些组件的深入理解,可以更容易地解决数据库问题,并在必要时定制或调整数据库的行为以满足特定的应用需求。
47 0
|
2月前
|
SQL 关系型数据库 MySQL
【MySQL核心】MySQL无法启动?批量恢复MySQL 物理文件-拯救即将跑路的你
【MySQL核心】MySQL无法启动?批量恢复MySQL 物理文件-拯救即将跑路的你
|
2月前
|
关系型数据库 MySQL Windows
MySQL数据导入:MySQL 导入 Excel 文件.md
MySQL数据导入:MySQL 导入 Excel 文件.md
|
3月前
|
存储 关系型数据库 MySQL
面试题MySQL问题之FastDFS中的文件重复上传如何解决
面试题MySQL问题之FastDFS中的文件重复上传如何解决
34 1
|
3月前
|
关系型数据库 MySQL Java
|
4月前
|
存储 关系型数据库 MySQL