mysql報錯Changed limits: max_open_files: 5000html
分類: MySQLmysql
2018-04-08 20:39:02redis
OS:CentOS 7.4
DB:mysql 5.7.17
error.log日誌裏報錯信息:
sql
- 2018-04-08T09:52:52.641263Z 0 [Warning] Changed limits: max_open_files: 5000 (requested 50000)
- 2018-04-08T09:52:52.641467Z 0 [Warning] Changed limits: max_connections: 4190 (requested 10000)
- 2018-04-08T09:52:52.641476Z 0 [Warning] Changed limits: table_open_cache: 400 (requested 2000)
看到這個錯誤第一反應是去數據庫查查當前的參數都是多少,和日誌裏提示的是同樣的
數據庫
- mysql> show variables like '%files%';
- +---------------------------+--------+
- | Variable_name | Value |
- +---------------------------+--------+
- | character_set_filesystem | binary |
- | innodb_log_files_in_group | 2 |
- | innodb_open_files | 400 |
- | keep_files_on_create | OFF |
- | large_files_support | ON |
- | open_files_limit | 5000 |
- +---------------------------+--------+
- 6 rows in set (0.00 sec)
-
- mysql> show variables like '%connections%';
- +----------------------+-------+
- | Variable_name | Value |
- +----------------------+-------+
- | max_connections | 4190 |
- | max_user_connections | 0 |
- +----------------------+-------+
- 2 rows in set (0.00 sec)
-
-
- mysql> show variables like '%table_open_cache%';
- +----------------------------+-------+
- | Variable_name | Value |
- +----------------------------+-------+
- | table_open_cache | 400 |
- | table_open_cache_instances | 16 |
- +----------------------------+-------+
- 2 rows in set (0.01 sec)
看到是max_open_files,難道是操做系統限制了?也沒有啊
post
- [root@iz2ze6jo3o3bqbcongnypoz mysql]# ulimit -n
- 65535
my.cnf文件裏也沒有對這些參數作修改,由於是用mysqld.service啓動的,難道是這個文件的問題嗎?
this
- [root@iz2ze6jo3o3bqbcongnypoz system]# more /usr/lib/systemd/system/mysqld.service
- # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; version 2 of the License.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- #
- # systemd service file for MySQL forking server
- #
-
- [Unit]
- Description=MySQL Server
- Documentation=man:mysqld(8)
- Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
- After=network.target
- After=syslog.target
-
- [Install]
- WantedBy=multi-user.target
-
- [Service]
- User=mysql
- Group=mysql
-
- Type=forking
-
- PIDFile=/var/run/mysqld/mysqld.pid
-
- # Disable service start and stop timeout logic of systemd for mysqld service.
- TimeoutSec=0
-
- # Execute pre and post scripts as root
- PermissionsStartOnly=true
-
- # Needed to create system tables
- ExecStartPre=/usr/bin/mysqld_pre_systemd
-
- # Start main service
- ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS
-
- # Use this to switch malloc implementation
- EnvironmentFile=-/etc/sysconfig/mysql
-
- # Sets open_files_limit
- LimitNOFILE = 5000
果真是...把這個參數修改成65535後,重啓mysql,問題消失了。
spa
- LimitNOFILE = 5000 這個值默認就是5000,下面這篇文檔說清楚這個事了:
https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html操作系統