我经常遇到 MySQL max_user_connections
限制。
可能是在部署之后,当我尝试运行某种命令(例如 rake db:migrate
)或尝试访问控制台时。
我理解这种限制,并且升级到付费计划可能会更好...但同时,当我尝试初始部署 Rails 应用程序时,我遇到了这个问题。
我可以采取什么措施来防止这种情况发生吗?
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/