mysql - mysqltuner后需要重新准备prepared语句

标签 mysql mysqltuner

运行 mysqltuner 后,我的应用程序日志显示“准备好的语句需要重新准备”(麻烦版本 1.1 和 1.4)。一旦我运行“flush table;”,错误就会消失。我在网上查看过,大多数内容都提到了与此错误相关的 mysqldump,但我没有运行 mysqldump。事实上,并没有真正做任何事情。所以有几个与此错误相关的问题:

  1. 一般来说,有什么与 mysqldump 无关的原因吗?
  2. 还有人在使用 mysqltuner 时遇到此问题吗?
  3. 这是否表明我需要研究更深层次的问题?

我的.conf:

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#  NOTE:  server did not like over 2GB
innodb_buffer_pool_size=1GB
innodb_log_buffer_size=9M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
#  join_buffer_size = 128M
join_buffer_size = 2M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

lower_case_table_names=1

character-set-server=utf8
query_cache_size=100M
query_cache_type=1
slow_query_log=ON
query_cache_limit = 10M
table_open_cache=164000
open_files_limit=328000

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

如果您需要其他信息,请告诉我。

编辑 2015 年 3 月 10 日: 我刚刚执行了以下操作,没有出现任何问题:

  1. 运行 mysqldump 将一个数据库(包含数据和函数)转储到“loadDB.sql”脚本以供以后使用。
  2. 添加了新数据库
  3. 使用“mysql < loadDB.sql”,加载我的新数据库
  4. 已更新行并将行添加到我的新数据库中 我对上述内容没有任何问题。

所以只有当我运行 mysqltuner 时才会出现问题。我不知道的是如果

  1. mysqltuner 导致了这个问题,在这种情况下,我要么永远不运行 mysqltuner,要么立即运行“flush table;”之后。
  2. 我的mysql配置有问题,这会给我以后带来问题,需要解决。
  3. 或者还有其他一些我还没有考虑的问题来源 第一步,也是写这篇文章的原因,是确定 mysqltuner 是否会导致此问题。

谢谢。

最佳答案

mysqltuner 代码中根本没有运行任何 FLUSH 命令。

我在最新的1.5.1版本中检查过。

关于mysql - mysqltuner后需要重新准备prepared语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28948970/

相关文章:

php - sprintf() 如何防止 SQL 注入(inject)?

mysql - 任何适用于 Windows 的 MySQLTuner 等效/替代品?

mysql - 尽管整个数据库都是 MyISAM,但 InnoDB 数据量很大?

mysql - 如何删除时间戳早于现在的行?

mysql - 合并所有 sql 中的结果

php - PDO exec 未插入且未返回错误

mysql - MariaDB 的最佳配置是什么? (CentOS 8、MariaDB 10.5)

MySQL 对 InnoDB 表进行碎片整理

mysql - 为 Prestashop 1.6 优化 MySQL

php - 通过 SQL 更改 URL