部署 Rails 应用程序时 MySQL max_user_connections 错误

标签 mysql ruby-on-rails cloudcontrol

我经常遇到 MySQL max_user_connections 限制。

可能是在部署之后,当我尝试运行某种命令(例如 rake db:migrate)或尝试访问控制台时。

我理解这种限制,并且升级到付费计划可能会更好...但同时,当我尝试初始部署 Rails 应用程序时,我遇到了这个问题。

我可以采取什么措施来防止这种情况发生吗?

full error :

Mysql2::Error: User 'xxxxxx' has exceeded the 'max_user_connections' resource (current value: 2)

最佳答案

原因是,对于零停机部署,旧版本和新版本同时运行最多两分钟,而路由层确保新请求转到新版本,而旧版本转到新版本完成所有待处理的请求。

为了避免使用免费的 MySQL 附加组件出现连接错误,您必须将 Rails 连接池设置为最多仅打开 1 个连接。

对于生产环境,您的database.yml 应如下所示:

production:
  adapter: mysql2
  encoding: utf8
  pool: 1
  database: <%= "'#{ ENV['MYSQLS_DATABASE'] }'" %>
  host: <%= "'#{ ENV['MYSQLS_HOSTNAME'] }'" %>
  port: <%= ENV["MYSQLS_PORT"] %>
  username: <%= "'#{ ENV['MYSQLS_USERNAME'] }'" %>
  password: <%= "'#{ ENV['MYSQLS_PASSWORD'] }'" %>

关于部署 Rails 应用程序时 MySQL max_user_connections 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20266707/

相关文章:

mysql - 使用mysql在 Node js中进行嵌套查询

php - 如何在cloudControl上使用Symfony2和MongoDB?

php - 为什么PaaS提供商建议在部署时安装依赖项? (对于 PHP 或 NodeJS 以及可能其他)

node.js - 事件驱动服务器/应用程序的免费 PaaS 有哪些限制?

MySQL 仅存储月份和年份

mysql - 列出具有 null 值的频率

php - MYSQL 与 PHP 中的查询匹配

ruby-on-rails - 如何使用simple_form生成输入[type = date]?

ruby-on-rails - Rspec:验证失败:名称已被占用

mysql - 如何从rails中的数据库加载和制作应用程序脚手架