mysqlnd_ms插件主要實現(xiàn)了mysql的連接保持和切換,負載均衡和讀寫分離等,也就是說, 這個擴展會去分別PHP發(fā)給MySQL的query,如果是”讀”的query,就會把query發(fā)送給從庫(配置中指明),并且支持負載均衡; 而如果是”寫”的query,就會把query發(fā)送給主庫.
mysqlnd_ms是mysqlnd的一個插件,該插件實現(xiàn)了連接保存和切換、負載均衡、讀寫分離的功能,要想使用mysqlnd_ms的讀寫分離功能必須在安裝php時使用–with-mysqlnd,mysqlnd實現(xiàn)的功能是可以不需要在php服務器上安裝mysql,在php5.3之前編譯安裝php需要通過–with-mysql=/path/to/mysql指定mysql安裝路徑.
1、安裝mysqlnd_ms模塊
- tar -zxvf mysqlnd_ms-1.5.2.tgz
- cd mysqlnd_ms-1.5.2
- /usr/local/php/bin/phpize
- ./configure --with-php-config=/usr/local/php/bin/php-config
- make && make install
出現(xiàn)以下類似提示,記錄下面的路徑需要擁有配置php.ini.
- Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
- Installing header files: /usr/local/php/include/php/
2、編輯 /usr/local/php/etc/php.ini
- extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/mysqlnd_ms.so
- mysqlnd_ms.enable = On
- mysqlnd_ms.config_file = /usr/local/php/etc/mysqlnd_ms_plugin.ini
3、創(chuàng)建mysqlnd_ms_plugin.ini配置文件
- {
- "myapp": {
- "master": {
- "master_0": {
- "host": "192.168.6.135",
- "socket": "//tmp//mysql.sock"
- } --Vevb.com
- "slave": {
- "slave_0": {
- "host": "192.168.6.136",
- "port": "3306"
- "slave_1": {
- "host": "192.168.6.137",
- "port": "3306"
- "filters": {
- "random": {
- "sticky": "1"
- }
- }
- }
- }
這里使用到了1主2從的mysql服務器,filters是定義訪問從服務器的策略,random是隨機選擇一臺服務器,strick參數(shù)設置成1是指將一次請求都指向一臺服務器.
4、測試
使用wordpress進行測試,編輯配置文件wp-config.php.
- /** MySQL主機 */
- define('DB_HOST', 'myapp'); #這的myapp是在mysqlnd_ms_plugin.ini中定義的.
新聞熱點
疑難解答
圖片精選