我在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
你有什么帮助能帮我解决问题吗?
发布于 2020-07-07 21:36:08
您是否尝试过以其他方式修改MacOS Catalina上的打开文件限制?通过快速搜索,我找到了这里,它建议在系统运行时修改它:
sudo launchctl limit maxfiles <soft limit> <hard limit>本站和这个超级用户问题建议修改/Library/LaunchDaemons/limit.maxfiles.plist以永久增加它。
<?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> 然后,通过更改权限和验证更改来完成。
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
launchctl limit maxfiles发布于 2020-11-03 13:13:15
用mysql < foo.sql导入数据库失败了:[ERROR] Error in accept: Too many open files
同意以上职位。这看起来是个假阴性。这就是对我有用的东西:
brew services stop mariadb并确保您没有运行任何mysql进程:ps aux | grep mysql。
mkdir /usr/local/var/run/mysqld编辑Mariadb文件/usr/local/etc/my.cnf并告诉它使用这个目录。
[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)也是如此。
启动数据库服务器,您就完成了。
brew services start mariadb发布于 2020-09-01 14:16:22
在从10.15.5升级到10.15.6之后,我在MacOS上解决了同样的问题,mariadb是通过自制版本10.5.5安装的。
结果发现问题不是打开文件的限制,而是缺少创建PID文件的权限。
为了解决这个问题,我创建了具有以下内容的~/.my.cnf文件。
[mysqld_safe]
pid-file = /var/run/mysqld/mysqld.pid并使用以下命令创建mysqld.pid文件(取自这个服务器故障问题)
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} )。但也许你不需要这一步。
https://stackoverflow.com/questions/62511187
复制相似问题