我在新安装的 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/