mysql - 在 Rails 应用程序中使用 activerecord 处理 MySQL 故障转移(主/从角色切换)
问题描述
我是 Rails 的新手,我已经构建了一个使用 activerecord 连接到 MySQL 的应用程序。master
我已经设置了节点的只读副本。问题是当我slave
变成时master
,我在应用程序中收到以下错误:
MySQL server is running with the --read-only option so it cannot execute this statement
我想这是可以接受的。
但是我的应用程序永远失败并且在我重新启动应用程序之前无法恢复。是否有任何可用于从这种情况中恢复的 acitverecord 配置或 MySQL 连接属性?
我在我的database.yml
.
adapter: mysql2
encoding: utf8
url: <'DATABASE_URL'>
pool: 10
database: <'DATABASE_NAME'>
username: <'DATABASE_USER'>
password: <'DATABASE_PASS'>
reconnect: true
是否可以添加任何配置来处理故障转移?有什么建议来处理这种情况吗?
提前致谢。
解决方案
我在这个博客之后解决了这个问题。将其放在这里以供参考,以便任何遇到问题的人都可以使用它。
根据博客,您将覆盖ActiveRecord::ConnectionAdapters::ConnectionManagement
适配器并编写自己的连接处理以防出现错误。
推荐阅读
- sql - redshift/postgres 对分区求和给出负值
- python - 匹配列表Python中多个字典的键值
- excel - Excel 从包含大量文本的单元格中提取文本
- c++ - 用 MACRO __COUNTER__ 生成一个唯一的变量名并使用它两次?
- r - 使用 dplyr 对数据框进行子集,首先是一个分类变量和第二个变量内给定值范围的分类频率
- html - 角度指令动态切换工具提示方向?
- python - 通过使用请求的循环从多个/动态页面(可通过基本 url 和查询参数访问)获取/抓取数据
- angular - 属性“ELEMENT_DATA”在其初始化之前使用。- 在角
- android - SHA-256 证书固定不起作用
- angular - TypeError:无法读取未定义的属性(读取'
')