mysqlnd插件mysqlnd_ms的介绍

标签: MySQL/PostgreSQL PHP应用 随笔 fail over load balancing | 发表时间:2011-10-05 20:06 | 作者:雪候鸟 xiong
出处:http://www.laruence.com

从PHP5.3开始, MySQL team专为PHP开发的MySQL连接库mysqlnd(MySQL native driver for PHP)终于和PHP一起发布了. mysqlnd的主要目的是为了解决长久以来mysql和php的license的问题. 它将作为PHP的源代码的一部分和PHP一起发布.

今天, 我要为大家介绍一个mysqlnd的插件:mysqlnd_ms, 这个插件是由mysqlnd的开发者Andrey Hristov,Ulf Wendeljohannes一起开发的, 目前发布在PECL: mysqlnd_ms

在这个扩展的介绍页面我们可以看到它的功能描述:

The replication and load balancing plugin is a plugin for the mysqlnd library. It can be used with PHP MySQL extensions (ext/mysql, ext/mysqli, PDO_MySQL). if they are compiled to use mysqlnd. The plugin inspects queries to do read-write splitting. Read-only queries are send to configured MySQL replication slave servers all other queries are redirected to the MySQL replication master server. Very little, if any, application changes required, dependent on the usage scenario required.

这个扩展, 主要实现了, 连接保持和切换, 负载均衡和读写分离等, 也就是说, 这个扩展会去分别PHP发给MySQL的query, 如果是”读”的query, 就会把query发送给从库(配置中指明), 并且支持负载均衡; 而如果是”写”的query, 就会把query发送给主库.

不过这个扩展需要搭配mysqlnd一起使用(从PHP5.4 beta1开始, 我们已经把mysqlnd作为mysql, mysqli, pdo的默认链接目标, 当然, 你也可以通过–with-mysql=***来制定你想要链接到libmysql).

这个扩展使用的方法也很简单, 首先在php.ini中定义配置:

mysqlnd_ms.enable=1
mysqlnd_ms.ini_file=/path/to/mysqlnd_ms_plugin.ini

之后, 在你指明的mysqlnd_ms_plugin.ini中配置好MySQL的主从库就好了:

[myapp]
master[]=localhost:/tmp/mysql.sock
slave[]=192.168.2.27:3306

博文发出以后, Ulf提醒我, 从1.1.0开始, 配置文件改为JSON格式:

Ulf_Wendel: @laruence >Thx for the blog. Please note, mysqlnd_ms config format was changed in 1.1.0. Now JSON based

所以新的配置应该类似于如下格式:

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

链接方式修改如下:

<?php
/* Load balanced following "myapp" section rules from the plugins config file */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");
?>

然后就和你之前一样的来开发了.

如果希望获得更多信息, 可以参看: http://php.net/mysqlnd_ms


Comments


Related posts:


Copyright © 2010 风雪之隅 版权所有, 转载务必注明. 该Feed只供个人使用, 禁止未注明的转载或商业应用. 非法应用的, 一切法律后果自负. 如有问题, 可发E-mail至my at laruence.com.(Digital Fingerprint: 73540ba0a1738d7d07d4b6038d5615e2)

Related Posts:

相关 [mysqlnd 插件 mysqlnd] 推荐:

mysqlnd插件mysqlnd_ms的介绍

- xiong - 风雪之隅
作者: Laruence(. 本文地址: http://www.laruence.com/2011/10/05/2192.html. 从PHP5.3开始, MySQL team专为PHP开发的MySQL连接库mysqlnd(MySQL native driver for PHP)终于和PHP一起发布了.

jquery 插件

- - JavaScript - Web前端 - ITeye博客
 jQuery插件的开发包括两种:. 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法. jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级别的插件开发,即给jQuery对象添加方法. 下面就两种函数的开发做详细的说明. 1 、类级别的插件开发.

XBMC 优酷插件

- iworm - Wow! Ubuntu
才知道,原来优酷还有 XMBC 的 Linux 版插件,这下看 Youku 视频就更加方便了,以下是安装方法. 1 安装 XBMC :XBMC 是支持跨平台的开源家庭多媒体娱乐中心软件,想安装最新版 XBMC 请查看此文. 2 解决乱码 : XBMC 在我的英文界面下中文会显示乱码,这是由字体原因引起的,所以先要解决此问题.

Menu - 菜单插件

- Xin - 博客园-首页原创精华区
    1)Lava Lamp基于JQuery 的水平滑动导航条.      2)jQuery.dropmenu这个插件能够将标准的UL元素转换成一个包含子菜单的下拉菜单. 易于使用,风格样式采用CSS控制.       3)JQuery Context Menu Plugin是一个非常轻便的jQuery右键菜单插件.

eclipse插件-easy explore

- - 博客园_首页
最近找到一个Eclipse的插件,名字是Easy Explore,是 Easy Structs 其 中的一个部分. 主要的功能就是在Eclipse里面视图的部分如果看到自己的工程,或者Package,包什么的,在安装完该插件以后点击鼠标右键,选 择"Easy Explore"就可以快速的打开该文件的windows存放文件夹,对于快速的导出源文件是一个很有用的插件.

Charts - 图表插件

- 天使羊 - 博客园-首页原创精华区
       Charts - 图表插件.        1)Highstock 可让你使用纯 JavaScript 创建股票或者通用的时间线图表.       2)Smoothie Charts是一个小型图表生成脚本,专为生成实时数据图表而设计. 比如可以用于生成CPU使用情况的图表.       3)JQuery Gantt Chart这是一款jQuery图表插件,可以实现甘特图.

redmine 插件管理

- - 研发管理 - ITeye博客
work Time_工数管理. Knowledgebase_知识库. Timesheet_时间管理. Screenshot Paste_截屏. 参考: http://wmcxy.blog.51cto.com/2509483/842296. 已有 0 人发表留言,猛击->> 这里<<-参与讨论.

常用JQuery插件整理

- xxg - 博客园-首页原创精华区
  虽然自己也写过插件,但JQuery插件种类的繁多,大多时候,我还是使用别人写好的插件,这些都是我用了同类插件里较为不错的一些,今天就整理一下公开放出来.   jquery.HooRay(哈哈,自己写的插件是必须有的).   jquery UI(官方的UI插件,功能很多,但我只用少数几个).   artDialog(很欣赏这个插件,又强大又美观).

2010年最佳jQuery插件

- seenxu - 博客园新闻频道
在2010年,JavaScript框架继续日渐普及,这使得大量的插件被开发出来. WDL的作者从大量的优秀 jQuery插件精心筛选出一些对Web Designers有帮助的和具备非常不错的视觉效果的Best of the best. 2010年最佳jQuery插件(排名不分先后):. 一个加载设置拥有9种过度效果的超级smooth slider,它还支持如链接图像和键盘导航等内容.

最佳 Firefox SEO 插件:SearchStatus

- 翼翔 - 我爱水煮鱼
Firefox 变得越来越重,但是我一直在使用 Firefox,最大的原因是因为 Firefox 上面的插件,有些神一样的插件,真的可以提高我们的工作效率,今天可以给大家推荐的 SearchStatus,就是 Firefox 上最优秀的 SEO 插件,可以说它是 SEO 神器. 为什么把它说的这么神奇,其实从下图就可以看出:.