我在Linux Debian 9上有MariaDB + Nginx(stretch)。在安装MariaDB并尝试启动它之后,我得到了一个错误:[Warning] Could not increase number of max_open_files to more than 4096 (request: 4214)
。所以我在谷歌上搜索了一下,它告诉我应该在/etc/systemd/system/mysql.service
中将LimiNOFILE
改为10000。我这样做了,做了金刚重装,它完全没有做任何事情。我仍然收到相同的错误消息。我尝试重新安装MariaDB,但也没有帮助。我还在文件的最后添加了LimitMEMLOCK=10000
,这并没有改变任何东西。
完整追溯:
Link
先谢谢你了
6条答案
按热度按时间zlhcx6iw1#
我通过重新安装MariaDB解决了这个问题
$ sudo apt-get purge mariadb-server
你应该检查它是否还在系统上:
$ sudo dpkg -l| grep mariadb
如果是,请执行以下操作:
$ sudo apt-get purge mariadb-common
但在此之前,我通过
htop
删除了与MariaDB/MySQL有关的所有内容。然后安装它的标准程序:$ sudo apt更新
$ sudo apt install mariadb-server
$ sudo mysql_secure_installation
vfhzx4xs2#
这可能是因为SystemD配置文件为服务设置的限制。如果是这种情况,您可以通过编辑
/usr/lib/systemd/system/mariadb.service
并将其增加到请求的值来解决它:...或任何你想要的值:
如果操作系统或初始化系统对用户或服务有较低的限制,open_files_limit 将不会有任何影响。
z4bn682m3#
仅在服务级别进行更改是不够的
您还必须编辑
/etc/mysql/conf.d/limits.cnf
里面有这些线条
然后
服务mysql重启
您可以在limits.conf和mysql.service中将该数字增加到1000000
du7egjpx4#
如果操作系统限制打开文件的数量,则像
openfile_files_limits
这样的服务器设置将不起作用,并且将始终导致错误。由于服务器默认以mysql用户身份运行,因此它不能更改系统值(服务器中也没有更改这些限制的代码)。Linux系统上打开文件的默认值为1024,可以通过以下方式确定
因此,如果您拥有root权限或您在sudo'ers列表中,只需增加此值。
man ulimit
将为您提供更多信息。lx0bsm1f5#
只是注意到对我来说的解决方案是修复
tmpdir
变量中的错误配置。它被设置为/mysqltmp
(可能是因为/tmp
非常小)。我用以下方法修复了它:我猜设置
tmpdir
到一个不存在或有错误权限的目录会触发此消息。u4vypkhs6#
在我的例子中,我在MySQL配置文件中有一个语法错误:
my.cnf
删 debugging 误行后,我成功启动了MySQL服务。