背景
最近公司运维对路由进行了修改,导致开发数据库查不到部分路由信息,对开发数据库进行路由维护后,导致多人访问时会出现无法连库和读表的情况,具体报错如下
Error Code: 1018 Can't read dir of '.' (errno: 24 - Too many open files)
修改
- 首先重启数据库,使数据库可以访问
- 查看数据库的最大文件读取数
show global variables like '%open%';
这里看到显示的是1024
- 首先判断数据库的启动
ps aux|grep mysql
如果查出来的只有一个启动的进程,那么直接修改my.conf就可以了
如果有mysqld_safe启动,那需要修改服务文件
-
修改配置文件
在my.conf里面mysqld模块中加入open_files_limit = 102400
重启mysql服务,看是否生效 -
如果上述修改无法生效,修改mysql服务文件进行修改(也有说其他的修改方式的,我这里是用这个方式修改的)
vi /etc/systemd/system/mysql.service #找到service文件,然后在service下加入LimitNOFILE=65535
systemctl daemon-reload #加载新的服务文件,不执行这一步,mysql也可以重启,不过会有一个报错
#重启mysql
service mysqld restart
修改完成后再去查询,显示连接数已经是65535了