【问题标题】:How do I resolve a mysql Thread Stack Overrun?如何解决 mysql 线程堆栈溢出?
【发布时间】:2012-05-09 17:48:25
【问题描述】:

我在 mysql 上有一个存储过程。它在我的本地 MAMP 环境中运行,该过程运行良好,但是当我将其移动到 linode 服务器/主机时,它无法运行。我收到“线程堆栈溢出”错误。我尝试将线程堆栈从初始值 64K 向上提升。我将值更改为 128K,然后更改为 256K。但问题仍然存在。

我正在开发一个 Lucid ubuntu 512MB linode 服务器。我在我的 mysql/my.cnf 文件中运行 linode 的建议配置:

key_buffer = 16K
max_allowed_packet = 1M
thread_stack = 64K 
table_cache = 4
sort_buffer = 64K
net_buffer_length = 2K

有人可以帮忙吗?你能推荐不同的配置吗?

【问题讨论】:

    标签: mysql linode


    【解决方案1】:

    如果您使用的是 Ubuntu 14.04,您可以在此处增加您的 MySQL 线程堆栈:

    /etc/mysql/my.cnf

    并更改此值thread_stack,它可能具有这样的值,例如:

    thread_stack = 192K

    之后你需要像这样重启 MySQL:

    sudo service mysql restart

    请参阅Ubuntu 14.04, MySQL documentation 了解更多信息。

    【讨论】:

    • 在 Ubuntu-16.04.3 中,文件位置和名称已更改。我必须运行 sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf 来更改 thread_stack 的值。
    • 另外,在 Ubuntu 16.04 上重启 MySQL:sudo systemctl restart mysql.service
    • 我的 my.cnf 中已经有了这个,但是值太低了。将其设置为 192 已修复,因此感谢您的指导!
    【解决方案2】:

    我是个白痴。我将 thread_stack 重置为更高的数字,但我没有重新启动服务器。重新启动解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      • 2021-05-26
      • 2015-09-08
      • 2019-07-02
      相关资源
      最近更新 更多