【问题标题】:how can i generate mysql lock timeout error on my server?如何在我的服务器上生成 mysql 锁定超时错误?
【发布时间】:2012-11-15 13:06:26
【问题描述】:

我的 mysql 服务器有时会给我这样的错误(我在日志中看到它们),我知道是什么原因造成的 现在要检查这一点,我需要自己制造这种情况(稍后,当我修复我的应用程序时,再次测试它,以确保它不再发生)

生成mysql锁超时错误的最佳方法是什么? my.cnf 中应该改变什么,然后我应该如何使用 mysqlslap? (至于现在我只设法在 shell 中得到“太多的连接”错误消息 :) 顺便说一句 - 它是 centos 上的 bash,mysql Ver 14.14 Distrib 5.1.66

帮助我的人!

【问题讨论】:

    标签: mysql locking timeout


    【解决方案1】:

    建议 #1

    假设你的数据使用InnoDB存储引擎,你需要配置innodb_lock_wait_time,默认是50秒。

    您可以自行决定降低它。也许是低得离谱的东西(比如 1)

    建议 #2

    如果您启用了innodb_file_per_table,您还可以使用innodb_open_files 阻塞打开文件的数量

    建议 #3

    我建议您创建一个测试脚本,故意将同一行更新数十次(甚至数百次)。然后,让 mysqlslap 启动该脚本数百次。

    【讨论】:

    • 感谢 Rolando 到目前为止尝试了 innodb_lock_wait_time=1 - 它没有给出超时锁定错误...还尝试了从循环中的 bash shell 更新 mysql - 仍然一样 :( 明天将尝试 SUGGESTION #2
    • innodb_file_per_table 已禁用尝试 mysqlslap 并在 bash 中循环 - 没有运气
    猜你喜欢
    • 2019-12-03
    • 2015-07-16
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多