mysql - 如何让mysql master只写,slave只读

标签 mysql database master-slave

我正在尝试设置 MySQL 主从网络。应用程序已准备就绪且不重写。如何配置主机只做写操作而从机只做读操作。

最佳答案

您不能使用 MySQL 自动执行此操作,您必须在每个查询的基础上执行此操作。一种方法是创建 2 个数据库连接,一个用于读取,一个用于写入,并确保为每个查询使用正确的连接。

我写了一个 PHP 数据库抽象类 ( available on github ) 来自动处理这个问题。您实例化该类,告诉它哪个服务器是主服务器,哪个服务器是从服务器(任意数量的从服务器)。然后它会自动通过主连接发送 INSERT、UPDATE 和 DELETE,并通过从连接发送 SELECT。它通过为每种类型的查询提供一个函数来实现这一点,并支持覆盖默认行为(即 SELECT from master)。

它是 Basecoat 的一部分框架,但它不以任何方式依赖于框架,因此如果您使用的是 PHP,则可以独立使用它。它还处理转义、按需连接、连接恢复、分析、多插入等。虽然它不是 ORM。

关于mysql - 如何让mysql master只写,slave只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17125590/

相关文章:

mysql - 在多对多关系中添加外键时出错

database - GridView返回希伯来字符的问号

database - PostgreSQL 唯一索引和字符串大小写

php - 通过 php post 方法将 URL 放入数据库

java - jenkins slave 未读取本地 JNLP 文件

mysql - 表特定查询与单个通用查询

mysql - 不调用rails sql数据库中的表参数

mysql更新插入连接避免重复

MySQL从不同的Master复制不同的数据库

php - Laravel 验证 'exist' 在主从数据库配置中不起作用?