mysql - FD_SETSIZE 和 MySQL 的 Catalina 问题,未读取配置

标签 mysql macos-catalina ulimit

我在新安装的 16"Macbook(带有 OSX 10.15.1 Catalina)上运行 MySQL@5.7 时遇到了一个大问题 PDO::__construct():MySQL 服务器已经消失。

这是我在MySQL日志中发现的如下错误导致的。

2019-11-27T13:24:04.835245Z 0 [Warning] File Descriptor 3226 exceeded FD_SETSIZE=1024

经过一些研究,我尝试了类似sudo launchctl limit maxfiles 65536 200000

当我运行 launchctl limit 时,我得到以下数据

    cpu         unlimited      unlimited
    filesize    unlimited      unlimited
    data        unlimited      unlimited
    stack       8388608        67104768
    core        0              unlimited
    rss         unlimited      unlimited
    memlock     unlimited      unlimited
    maxproc     4096           4096
    maxfiles    524288         524288

这对我来说很好。为了使最大进程数和最大文件数正确,我也尝试过

sudo sysctl -w kern.maxfilesperproc=524288

my.cnf 看起来像这样

[mysqld]
open_files_limit=999999
local_infile=ON
secure_file_priv=""
max_allowed_packet=1073741824
max_connections=100000
key_buffer_size=2G
innodb_buffer_pool_size=12G
query_cache_size=67108864
query_cache_type=1
query_cache_limit=4194304
table_open_cache=4096
innodb_buffer_pool_instances=24
innodb_sort_buffer_size=2G
sort_buffer_size=1G
innodb_flush_log_at_trx_commit=0
innodb_log_file_size=3G
interactive_timeout=3600
max_connect_errors=1000000
thread_cache_size=4096
log_error=/var/log/mysql/error.log
[mysqld_safe]
open_files_limit=999999

当然有一个解决方案可以将我的 table_open_cache 更改为较低的值,但这会损害性能,之前我总是将其设置为较高的值。

任何人都知道这个 FD_SETSIZE 来自哪里以及如何更改它以便正确使用它 顺便说一下,重启没有任何影响。

最佳答案

解释问题的资源:https://expressionengine.com/blog/mysql-5.7-server-os-x-has-gone-away

尝试在mysql配置文件(my.cnf)中设置以下环境变量

interactive_timeout = 300
wait_timeout = 300

关于mysql - FD_SETSIZE 和 MySQL 的 Catalina 问题,未读取配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59071588/

相关文章:

mysql - 从两个字段双重查询表(INNER JOIN?)

javascript - PHP MySQL while 循环中的删除函数

c++ - 卡塔琳娜 C++ : Using <cmath> headers yield error: no member named 'signbit' in the global namespace

java - 从 java 设置 ulimit -n

debian - 如何在 Debian Stretch 中永久更改普通用户打开的文件(ulimit -n)?

MySQL Import into Innodb table 在某个点严重尖峰

mysql - 两个表之间的sql查询数据过滤

ios - `<PBX...` >` 试图用未知的 UUID 初始化一个对象。这可能是合并的结果,未知的 UUID 被丢弃

macos-catalina - macOS Catalina : trying to install content to the system volume

可以增加 Mac OS 10.7 (OS X Lion) 中 ulimit 参数的硬限制吗?