龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 关于mybb主从数据配置

时间:2014-07-20 15:52来源:网络整理 作者:网络 点击:
分享到:
关于mybb主从数据配置 今天微博上有朋友问到我Mybb如何配置主从其实我对mybb不是很熟悉,就大致看了一下DB发现是可以配置主从的在inc/config.php中配置如下$config[#39;database#39;][#39;read#39;

今天微博上有朋友问到我Mybb如何配置主从

其实我对mybb不是很熟悉,就大致看了一下DB

发现是可以配置主从的

在inc/config.php

中配置如下

$config['database']['read']['hostname'] = 'localhost';

$config['database']['read']['username'] = 'root';

$config['database']['read']['password'] = '';

$config['database']['write']['hostname'] = 'localhost';

$config['database']['write']['username'] = 'root';

$config['database']['write']['password'] = '';

//read为从 write为主 多个的时候['read'][0]['hostname']这样以数据配置即可

但是在db_mysql.php中我却发现在处理主从的时候。有一个不和谐的代码。目前我也没有想明白目的

if(array_key_exists('hostname', $connections[$type]))

{

$details = $connections[$type];

unset($connections);//这里unset了 就肯定只能够连接到read的第一个数据库上

$connections[$type][] = $details;

}

我没有搞明白目的所以没有进行修改。如果要实现

要实现只需要重新处理一下$connections数组就可以解决

我这里就不累述。

foreach(array('read', 'write') as $type)
{
    print_r($connections);if(!is_array($connections[$type]))
    {
        break;
    }

    if(array_key_exists('hostname', $connections[$type]))
    {
        $details = $connections[$type];
        unset($connections);
        $connections[$type][] = $details;
    }

    // Shuffle the connections
    shuffle($connections[$type]);

    // Loop-de-loop
    foreach($connections[$type] as $single_connection)
    {
        $connect_function = "mysql_connect";
        if($single_connection['pconnect'])
        {
            $connect_function = "mysql_pconnect";
        }

        $link = $type."_link";

        $this->get_execution_time();

        $this->$link = @$connect_function($single_connection['hostname'], $single_connection['username'], $single_connection['password'], 1);

        $time_spent = $this->get_execution_time();
        $this->query_time += $time_spent;

        // Successful connection? break down brother!
        if($this->$link)
        {
            $this->connections[] = "[".strtoupper($type)."] {$single_connection['username']}@{$single_connection['hostname']} (Connected in ".number_format($time_spent, 0)."s)";
            break;
        }
        else
        {
            $this->connections[] = "<span style=\\"color: red\\">[FAILED] [".strtoupper($type)."] {$single_connection['username']}@{$single_connection['hostname']}</span>";
        }
    }
}
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接