所谓多数据的从主关系及读写分离,由于某种原因时,当主数据库不能访问或连接时,系统会认定为“故障转移”, 这些“故障转移”可以通过设置“故障转移”指定的数据库,从而使网站不会随数据库而挂掉。
打开/config/database.php文件:
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
... 以上是默认内容 ...
);
... 以上是默认内容 ...
#以下是我为“default”设置故障处理库
$db['default']['failover'] = array(
array(
'dsn' => '',
'hostname' => '127.0.0.1', // 备用数据1
'username' => 'root',
'password' => '',
'port' => '3306',
'database' => 'vip',
'dbdriver' => 'mysqli',
'dbprefix' => 'dr_',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => 'cache/sql/',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'autoinit' => FALSE,
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
),
array(
'dsn' => '',
'hostname' => '127.0.0.1', // 备用数据2
'username' => 'root',
'password' => '',
'port' => '3306',
'database' => 'vip2',
'dbdriver' => 'mysqli',
'dbprefix' => 'dr_',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => 'cache/sql/',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'autoinit' => FALSE,
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
),
);你可以设置多个备用库来应付故障的处理,当然前提需要这些库的数据同步(一般数据库服务器有这种同步机制)。
文档最后更新时间:2015-02-26 09:07:30