mysql - 独立脚本报告 "MySQL server has gone away"; my.cnf 有问题吗?

标签 mysql ruby ruby-on-rails-3 mysql2 my.cnf

我有一个 ruby​​ 脚本,需要“mysql2”并使用像 mysql 这样的查询语句
@db.query("从region_id=#{region["id"]}"的街道中选择sname,id")
但它总是向我报告这样的错误:

main.rb:261:in `query': MySQL server has gone away (Mysql2::Error)
    from main.rb:261:in `block (3 levels) in <main>'
    from main.rb:258:in `each'
    from main.rb:258:in `block (2 levels) in <main>'
    from main.rb:254:in `each'
    from main.rb:254:in `block in <main>'
    from main.rb:253:in `loop'
    from main.rb:253:in `<main>'

我的Ubuntu上的脚本没问题,但是,我的生产环境是CentOS,并且在那里我从源代码安装了MySQL。我的 Rails 应用程序运行正常,并且还需要“mysql2”,但是当我运行此脚本时,它失败了。

我认为问题与 my.cnf 有关,但我不知道如何配置它。

最佳答案

mysql2 gem 提供 an optionreconnect如果连接断开,则返回 MySQL。不要更新 my.cnf 文件,而是更新 gem 的 database.yml 文件以包含

  reconnect: true

选项。这将确保 mysql2 gem 在需要时尝试重新连接到 MySQL。

关于mysql - 独立脚本报告 "MySQL server has gone away"; my.cnf 有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6080055/

相关文章:

ruby-on-rails - 获取不会过期的永久 amazon s3 对象 url

ruby-on-rails - 尝试避免在电子邮件地址以 ".old"结尾时发送电子邮件

css - css的rails缓存问题

mysql - 将 MD5 哈希密码从一个 MySQL 传输到另一个

php - 加入2个mysql表

ruby - 旋转字符串中的字母,使每个字母移动 n 位到另一个字母

ruby-on-rails - gem 上的 rake 任务

ruby-on-rails-3 - Rails 3/Device - 更改密码重置的错误消息

MySQL 外键 : set null on update timestamp

php - 从 my_table 中选择 avg(unit_cost),其中运行总和(数量)< '$someNumber'