CodeIgniter为READ和WRITE MySQL数据配置不同的IP

时间:2010-09-03 07:09:29

标签: php mysql codeigniter master-slave

我的公司一直在设置一个不同的服务器,用于mysql DB的读写访问。以前,我们使用自定义PHP脚本。 但是,我最近被赋予了通过利用CI创建工具的任务。我在测试服务器上完成了它。现在,我很困惑,如何在实时服务器上实现它。

3 个答案:

答案 0 :(得分:4)

为database.php配置文件中的每个服务器设置多个“连接组”,然后在模型中:

$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);

//read from DB1
$DB1->query();

//write to DB2
$DB2->insert();

参见:Connecting to Multiple Databases

中的示例

答案 1 :(得分:0)

可能更容易,而不是通过IP执行此操作,使用MySQL用户执行此操作。

您可以拥有两个不同的用户,一个拥有所有写权限,例如INSERTUPDATE,然后是另一个拥有所有READ权限的用户,例如SELECT,或者您想要的任何用户。

那么您的写入Web服务器上运行的代码是使用写入用户还是反之亦然?

答案 2 :(得分:0)

我创建了一个扩展数据库功能的简单库。您可以根据需要进行修改。 http://rangga.net/splitting-read-write-codeigniter-database/