2017-02-13 97 views
1

我需要連接的PHP應用程序和MySQL集羣(主 - 主)MySQL集羣+ PHP

select version(); -- 5.6.28-ndb-7.4.9-cluster-gpl 

據我瞭解,我需要安裝插件mysqlnd_ms,這將包裹mysqli擴展來解決連接。我試着這樣做:

sudo pecl install mysqlnd_ms 

但該命令會失敗,

/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:28:33: fatal error: 
ext/mysqlnd/mysqlnd.h: No such file or directory 

而實際上我不知道我應該怎麼辦。我已經建立從我的服務器與Apache到每個羣集節點的連接,它完美地工作。我應該安裝這個插件嗎?如果不是,我該怎麼做呢?任何建議感激。

+0

是否安裝MySQLnd?它不同於MySQLi或PDO_MySQL – apokryfos

+0

你也需要mysqlnd_ms嗎?我希望這只是在你需要自己管理負載均衡和複製時才需要。 MySQL集羣應該爲你做。 – apokryfos

+0

是的,MySQLnd已安裝。但是,據我所知,mysqlnd它只是php-mysql通信的客戶端,而不是用於平衡負載和集羣。我不確定MySQL集羣是否會平衡加載而不是我,因爲我應該定義連接主機。我可以這樣做:if(rand(0,1)== 1){connectToHostOne()} else {connectToHostTwo()}'但它看起來很傻。 – degr

回答

0

我想一點關於主 - 主集羣實現的單一端點,並尋找某種代理技術。

我發現mysql-router實現(https://dev.mysql.com/downloads/router/),並且認爲會使用它。從我的觀點來看,我應該使用「php」應用程序將該應用程序安裝在同一臺服務器上,並執行從php到此應用程序的連接。

[routing:example_strategy] 
bind_port = 7001 
destinations = master1.example.com,master2.example.com,master3.example.com 
mode = read-write 

該配置應該在路由器內進行負載均衡。