我经常进入MySQL max_user_connections
限制。
当我尝试运行某种命令(例如rake db:migrate
或试图访问控制台时)部署之后。
我理解这个限制,并且升级到付费计划可能会更好......但与此同时,当我尝试初始部署Rails应用程序时,我遇到了这个问题。
我能做些什么来阻止它吗?
Mysql2::Error: User 'xxxxxx' has exceeded the 'max_user_connections' resource (current value: 2)
答案 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'] }'" %>