mariadb 10.3.13表\u打开\u缓存问题

mariadb 10.3.13表\u打开\u缓存问题,mariadb,Mariadb,刚刚将mysql 5.6升级到mariadb 10.3.13-现在当服务器点击open_tables=2000时,我的php查询停止工作-如果我刷新表,它将再次正常工作。这在我使用mysql的时候从来没有发生过——现在我每天都要登录并刷新表才能恢复正常工作 使用WHM/Cpanel管理我的VPS,在上一个WHM版本中,它开始警告我,我正在运行的MySql版本(真的不记得它是什么版本-它是我获得VPS时加载的版本)即将结束,我需要升级到SQL 5.7或MariaDB xxx。我一直想搬到Maria

刚刚将mysql 5.6升级到mariadb 10.3.13-现在当服务器点击open_tables=2000时,我的php查询停止工作-如果我刷新表,它将再次正常工作。这在我使用mysql的时候从来没有发生过——现在我每天都要登录并刷新表才能恢复正常工作

使用WHM/Cpanel管理我的VPS,在上一个WHM版本中,它开始警告我,我正在运行的MySql版本(真的不记得它是什么版本-它是我获得VPS时加载的版本)即将结束,我需要升级到SQL 5.7或MariaDB xxx。我一直想搬到MariaDB去,所以我就是这么做的——WHM推荐了10.3.13版本

经过更多的观察和观察,似乎是自动CPANEL备份例程使我的open_表达到了2000 max,它还可以一次性备份我的所有数据库。不会崩溃任何东西只会导致我的PHP应用程序连接出现问题-我不认为连接会被拒绝-它们只是不返回任何数据。。。。关闭了所有的自动WHM/CPANEL备份,事情稍微稳定下来

表\u定义\u缓存400 表\u打开\u缓存2000

我仍然通过cron进行mysqldump来进行数据库备份——只有两个实时数据库,而且它们仍然使表的开放性增长到2000个最大值——只是速度没有那么快

我现在运行一个每小时运行一次的脚本,向我展示一些变量,下面是我看到的

执行flush tables命令后,open_tables和open_table_定义开始增加,直到open_table_定义达到400,它停止增加,而open_tables一整天都在增加

然后,当mysqldump在清晨发生时,tables\u open点击2000(最大设置),我的php查询就不会执行

我没有得到PHP错误

我运行了下面的命令,以便可以看到db端发生了什么

设置全局常规日志='ON'

查看日志,当一切正常运行时,我看到我的应用程序正在连接、准备语句、执行语句,然后断开连接

当它开始出现问题时,我也做了同样的事情(即,我的php应用程序开始不再得到结果)

查看日志,我看到我的应用程序正在连接,然后准备语句,而不是看到它执行语句,它又准备了两次相同的语句,然后断开连接

我登录到mysql并执行了flush tables命令,一切都恢复正常-应用程序连接、准备语句、执行语句、断开连接


但这在我搬到MariaDB之前从未发生过-我从来没有弄乱过MySQL服务器的东西-MySQL唯一一次重新启动是在我进行CENTOS 6系统更新并不得不重新启动服务器的时候-会在服务器上几个月不做任何事

看起来系统就是罪魁祸首-我将open_table_缓存更改为400,我的php应用程序在准备语句时不再有任何问题,即使是在每晚备份数据库之后。查看较旧的mysql文档,mysql 5.6.7的table_open_缓存设置为400,因此当我升级到mariadb 10.3.13时,默认设置更改为2000,这是我开始遇到问题的时候

不太清楚下面的内容告诉我什么,但可能有兴趣

su-mysql -bash-4.1$ulimit-Hn 100 -bash-4.1$ulimit-Sn 100 -bash-4.1$exit 注销 [~]#ulimit-Hn 4096 [~]#ulimit-Sn
4096

奇怪<代码>表\u打开\u缓存是一个缓存。如果达到限制,MySQL/MariaDB不会“停止工作”。请提供更多信息。当它“停止工作”时你在做什么?您使用的是什么发动机?