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

时间:2013-11-28 12:50:46

标签: 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)

1 个答案:

答案 0 :(得分:0)

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

为避免与免费的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'] }'" %>