mysql的读写分离

Posted limeng951

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的读写分离相关的知识,希望对你有一定的参考价值。

1、laravel实现数据库读写分离配置或者多读写分离配置

config\\database.php配置
\'connections\' => array(
     //默认mysql配置,访问test库
    \'mysql\' => array(
        \'driver\'    => \'mysql\',
        \'host\'      => \'192.168.16.70\',
        \'port\'      =>  \'3306\',
        \'database\'  => \'test\',
        \'username\'  => \'test\',
        \'password\'  => \'123456\',
        \'charset\'   => \'utf8\',
        \'collation\' => \'utf8_unicode_ci\',
        \'prefix\'    => \'\',
    ),
    //自定义mysql连接,访问media库
    \'media\' => array(
        \'read\' => array(
            array(\'host\' => \'192.168.16.74\',\'port\' => 3306),
            array(\'host\' => \'192.168.16.70\',\'port\' => 3306),
        ),
        \'write\' => array(
            \'host\' => \'192.168.16.70\', \'port\'=> 3306
        ),
        \'driver\'    => \'mysql\',
        \'database\'  => \'media\',
        \'username\'  => \'test\',
        \'password\'  => \'123456\',
        \'charset\'   => \'utf8\',
        \'collation\' => \'utf8_unicode_ci\',
        \'prefix\'    => \'\',
    ),
 
2、为什么要用Amoeba?

解释:目前要实现mysql的主从读写分离,主要有以下几种方案:

1、  通过程序实现,网上很多现成的代码,比较复杂,如果添加从服务器要更改多台服务器的代码。

2、  通过mysql-proxy来实现,由于mysql-proxy的主从读写分离是通过lua脚本来实现,目前lua的脚本的开发跟不上节奏,而写没有完美的现成的脚本,因此导致用于生产环境的话风险比较大,据网上很多人说mysql-proxy的性能不高。

3、  自己开发接口实现,这种方案门槛高,开发成本高,不是一般的小公司能承担得起。

4、  利用阿里巴巴的开源项目Amoeba来实现,具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库,并且安装配置非常简单。
具体配置:访问-----http://www.cnblogs.com/lhj588/archive/2012/11/19/2777897.html 博客     

以上是关于mysql的读写分离的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中间件proxysql实现MySQL读写分离

Zend Framework中如何实现MySQL的读写分离 - PHP框架开发

mysql读写分离

mysql读写分离

MySQL主从复制与读写分离

mysql中间件proxysql实现mysql读写分离