当前位置:首页 > Mysql教程 > 列表

实现mysql读写分离的mysqlnd的mysqlnd_ms插件使用教程

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-17 15:38:19 浏览: 评论:0 

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

mysqlnd_ms是mysqlnd的一个插件,该插件实现了连接保存和切换、负载均衡、读写分离的功能,要想使用mysqlnd_ms的读写分离功能必须在安装php时使用–with-mysqlnd,mysqlnd实现的功能是可以不需要在php服务器上安装mysql,在php5.3之前编译安装php需要通过–with-mysql=/path/to/mysql指定mysql安装路径.

1、安装mysqlnd_ms模块

  1. tar -zxvf mysqlnd_ms-1.5.2.tgz 
  2.  cd mysqlnd_ms-1.5.2 
  3.  /usr/local/php/bin/phpize 
  4.  ./configure --with-php-config=/usr/local/php/bin/php-config 
  5.  make && make install 

出现以下类似提示,记录下面的路径需要拥有配置php.ini.

  1. Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ 
  2. Installing header files: /usr/local/php/include/php/ 

2、编辑 /usr/local/php/etc/php.ini

  1. extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/mysqlnd_ms.so 
  2. mysqlnd_ms.enable = On 
  3. mysqlnd_ms.config_file = /usr/local/php/etc/mysqlnd_ms_plugin.ini 

3、创建mysqlnd_ms_plugin.ini配置文件

  1. {   
  2. "myapp": { 
  3.         "master": { 
  4.             "master_0": { 
  5.                 "host""192.168.6.135"
  6.                 "socket""\/tmp\/mysql.sock" 
  7.             }  --phpfensi.com 
  8.         "slave": { 
  9.             "slave_0": { 
  10.                 "host""192.168.6.136"
  11.                 "port""3306" 
  12.             "slave_1": { 
  13.                 "host""192.168.6.137"
  14.                 "port""3306" 
  15.             "filters": { 
  16.                 "random": { 
  17.                     "sticky""1" 
  18.                 } 
  19.             } 
  20.         } 

这里使用到了1主2从的mysql服务器,filters是定义访问从服务器的策略,random是随机选择一台服务器,strick参数设置成1是指将一次请求都指向一台服务器.

4、测试

使用wordpress进行测试,编辑配置文件wp-config.php.

  1. /** MySQL主机 */ 
  2. define('DB_HOST''myapp'); #这的myapp是在mysqlnd_ms_plugin.ini中定义的.

Tags: mysql读写分离 mysqlnd_ms

分享到: