gpt4 book ai didi

ruby-on-rails - Rails MySQL2默认的wait_timeout如此巨大

转载 作者:行者123 更新时间:2023-12-04 06:11:00 24 4
gpt4 key购买 nike

每当有任何请求时,此查询命令都会在后端运行多次:

SET NAMES utf8,  @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'),  @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483

为什么Rails不只运行一次?

另外,为什么将wait_timeout设置为2147483,它是如此之大,那么多小时,却使我的服务器瘫痪,因为在 sleep 模式下有如此多的查询要持续100多个小时。

我不得不将其更新为180秒。
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
socket: /var/run/mysqld/mysqld.sock
wait_timeout: 180

我做错了什么。我不知道。

最佳答案

Why does it set wait_timeout to 2147483



这是带有 mysql2适配器issue!

mysql2_adapter uses this same wait_timeout, but passes it directly to mysql, and defaults to a much larger 2592000!!(Now it defaults to 2147483)


# increase timeout so mysql server doesn't disconnect us
wait_timeout = @config[:wait_timeout]
wait_timeout = 2147483 unless wait_timeout.is_a?(Fixnum)
variable_assignments << "@@wait_timeout = #{wait_timeout}"

execute("SET #{variable_assignments.join(', ')}", :skip_logging)

Reference

关于ruby-on-rails - Rails MySQL2默认的wait_timeout如此巨大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46110869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com