首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Macos Catalina上使用Mariadb 10.4.13打开的文件太多

Macos Catalina上使用Mariadb 10.4.13打开的文件太多
EN

Stack Overflow用户
提问于 2020-06-22 09:22:08
回答 5查看 7.1K关注 0票数 10

我在MacOS10.15.5上运行,使用mariadb 10.4.13。因为我做了“brew升级”,所以我有一个错误:Out of resources when opening file './pluto/_connection.MYD' (Errcode: 24 "Too many open files")

我试图修改这个文件/usr/local/etc/my.cnf以添加这一行open_files_limit = 60000,但它不起作用,open_files_limit变量在值256上仍然被阻塞。

我尝试了这一行:sudo ulimit -n 1024,但是每次我重新启动这个值时,这个值返回到256

你有什么帮助能帮我解决问题吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-07-07 21:36:08

您是否尝试过以其他方式修改MacOS Catalina上的打开文件限制?通过快速搜索,我找到了这里,它建议在系统运行时修改它:

代码语言:javascript
复制
sudo launchctl limit maxfiles <soft limit> <hard limit>

本站这个超级用户问题建议修改/Library/LaunchDaemons/limit.maxfiles.plist以永久增加它。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"  
        "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">  
  <dict>
    <key>Label</key>
    <string>limit.maxfiles</string>
    <key>ProgramArguments</key>
    <array>
      <string>launchctl</string>
      <string>limit</string>
      <string>maxfiles</string>
      <string><your soft limit here></string>
      <string><your hard limit here></string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
</plist> 

然后,通过更改权限和验证更改来完成。

代码语言:javascript
复制
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
launchctl limit maxfiles
票数 17
EN

Stack Overflow用户

发布于 2020-11-03 13:13:15

  • MacOS Catalina 10.15.x
  • Mariadb安装了自制软件

mysql < foo.sql导入数据库失败了:[ERROR] Error in accept: Too many open files

同意以上职位。这看起来是个假阴性。这就是对我有用的东西:

代码语言:javascript
复制
brew services stop mariadb

并确保您没有运行任何mysql进程:ps aux | grep mysql

代码语言:javascript
复制
mkdir /usr/local/var/run/mysqld

编辑Mariadb文件/usr/local/etc/my.cnf并告诉它使用这个目录。

代码语言:javascript
复制
[client-server]
socket = /usr/local/var/run/mysqld/mysql.sock

[mysqld_safe]
pid-file = /usr/local/var/run/mysqld/mysqld.pid

严格地说,您只需要定义pid文件,尽管我个人喜欢将pid和套接字文件存储在/usr/local/var/run -结构中。我对安装自Homebrew的PHP (/usr/local/var/run/php)也是如此。

启动数据库服务器,您就完成了。

代码语言:javascript
复制
brew services start mariadb
票数 6
EN

Stack Overflow用户

发布于 2020-09-01 14:16:22

在从10.15.5升级到10.15.6之后,我在MacOS上解决了同样的问题,mariadb是通过自制版本10.5.5安装的。

结果发现问题不是打开文件的限制,而是缺少创建PID文件的权限。

为了解决这个问题,我创建了具有以下内容的~/.my.cnf文件。

代码语言:javascript
复制
[mysqld_safe]
pid-file    = /var/run/mysqld/mysqld.pid

并使用以下命令创建mysqld.pid文件(取自这个服务器故障问题)

代码语言:javascript
复制
mkdir /var/run/mysqld
touch /var/run/mysqld/mysqld.pid
chown -R mysql:mysql /var/run/mysqld

解决了问题。MySQL/MariaDB不再抱怨打开了太多的文件。

我还需要杀死所有正在运行的mysql进程(让theri运行ps aux | grep mysql,然后运行kill {proces_number} )。但也许你不需要这一步。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62511187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档