MySQL8.0~open_files_limit 和 innodb_open_files 参数生效取值尺度 ...

打印 上一主题 下一主题

主题 757|帖子 757|积分 2271

前置条件

设置参数
/etc/security/limits.conf中设置如下
  1. * soft nofile 100001
  2. * hard nofile 100002
  3. root soft nofile 100001
  4. root hard nofile 100002
  5. mysql soft nofile 65535
  6. mysql hard nofile 65535
复制代码
my.cnf中设置如下
  1. table_open_cache=5000
  2. open_files_limit=20000
  3. innodb_open_files=10000                          
复制代码
open_files_limit 取值尺度

mysql用户重启服务

重启mysql,以mysql用户启动服务
  1. /bin/sh /usr/local/mysql8/bin/mysqld_safe --defaults-file=/etc/my8.cnf --user=mysql &
复制代码
查询参数值
  1. mysql> show variables like '%open%';
  2. +----------------------------+-------+
  3. | Variable_name              | Value |
  4. +----------------------------+-------+
  5. | have_openssl               | YES   |
  6. | innodb_open_files          | 10000 |
  7. | mysqlx_port_open_timeout   | 0     |
  8. | open_files_limit           | 65535 |
  9. | table_open_cache           | 5000  |
  10. | table_open_cache_instances | 16    |
  11. +----------------------------+-------+
复制代码
innodb_open_files 10000 和配置文件中一致
open_files_limit 65535 和操纵体系mysql用户文件句柄数一致
table_open_cache 5000 和配置文件中一致
root用户重启服务

重启mysql,以root用户启动服务
查看参数值
  1. mysql> show variables like '%open%';
  2. +----------------------------+-------+
  3. | Variable_name              | Value |
  4. +----------------------------+-------+
  5. | have_openssl               | YES   |
  6. | innodb_open_files          | 10000 |
  7. | mysqlx_port_open_timeout   | 0     |
  8. | open_files_limit           | 20000 |
  9. | table_open_cache           | 5000  |
  10. | table_open_cache_instances | 16    |
  11. +----------------------------+-------+
复制代码
innodb_open_files 10000 和配置文件中一致
open_files_limit 20000 和配置文件中一致
table_open_cache 5000 和配置文件中一致
innodb_open_files取值尺度

修改innodb_open_files的值
table_open_cache=5000
open_files_limit=20000
innodb_open_files=30000
利用mysql用户启动

  1. mysql> show variables like '%open%';
  2. +----------------------------+-------+
  3. | Variable_name              | Value |
  4. +----------------------------+-------+
  5. | have_openssl               | YES   |
  6. | innodb_open_files          | 30000 |
  7. | mysqlx_port_open_timeout   | 0     |
  8. | open_files_limit           | 65535 |
  9. | table_open_cache           | 5000  |
  10. | table_open_cache_instances | 16    |
  11. +----------------------------+-------+
复制代码
innodb_open_files 读取配置文件的值
利用root用户启动

  1. mysql> show variables like '%open%';
  2. +----------------------------+-------+
  3. | Variable_name              | Value |
  4. +----------------------------+-------+
  5. | have_openssl               | YES   |
  6. | innodb_open_files          | 5000  |
  7. | mysqlx_port_open_timeout   | 0     |
  8. | open_files_limit           | 20000 |
  9. | table_open_cache           | 5000  |
  10. | table_open_cache_instances | 16    |
  11. +----------------------------+-------+
复制代码
如果它大于 open_files_limit 且大于 table_open_cache 则取值table_open_cache
总结

1、innodb_open_files 和open_files_limit 两个参数值生效,和操纵体系配置和配置文件配置有关系,且和不同操纵体系启动服务也有关。
2、open_files_limit : 如果是root账号启动 以my.cnf文件内里的值为准, 如果是mysql启动, 就可能是 ulimit -n 看到的那个值
3、innodb_open_files :如果以mysql账户启动,则取my.cnf文件内里的值为准;
如果用root账户启动, 如果它大于 open_files_limit 且大于 table_open_cache 则取值table_open_cache,否则取配置文件my.cnf的值。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

灌篮少年

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表