Mysql

Debian 6 上的 PHP mysqlnd

  • March 24, 2013

我已經通過以下方式安裝了 php5-mysqlnd:

apt-get install php5-mysqlnd

這是一個全新的原始 Debian 安裝,只有 apache2 和 php5,通過:

apt-get install apache2
echo "deb http://http.us.debian.org/debian unstable main contrib non-free" >> /etc/apt/sources.list
apt-get update
apt-get install php5 php5-dev php5-cli libapache2-mod-php5 php5-mysqlnd

當我執行 phpinfo() 時,它表明正在使用 mysqlnd。

我的問題是,我在哪裡放置配置詳細資訊以指定主/從詳細資訊,以便我可以使用自動負載平衡和讀/寫拆分?

我已閱讀並關注:http ://www.php.net/manual/en/mysqlnd-ms.quickstart.configuration.php

我附加了:

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/etc/php5/mysqlnd_ms_plugin.ini

到 /etc/php5/conf.d/10-mysqlnd.ini

現在內容如下:

; configuration for php MySQL module
; priority=10
extension=mysqlnd.so

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/etc/php5/mysqlnd_ms_plugin.ini

不幸的是,這些設置似乎沒有任何區別,因為我無法使用主機名“myapp”作為我在 /etc/php5/mysqlnd_ms_plugin.ini 中配置的部分名稱來執行 mysql_connect():

{
   "myapp": {
       "master": {
           "master_0": {
               "host": "127.0.0.1",
               "port": "3306"
           }
       },
       "slave": {
           "slave_0": {
               "host": "10.0.0.1",
               "port": "3306"
           }
       }
   }
}

任何人都可以闡明我的配置出錯的地方以及我可以做些什麼來讓它工作,以便我可以使用我複制的數據庫使用讀/寫拆分進行連接?

編輯:在下面的評論之後,我意識到我實際上並沒有添加 mysqlnd_ms 外掛。嘗試通過 pecl 安裝此外掛後,我收到有關缺少 mysqlnd.h 的錯誤。

因此,在收到有關缺少 mysqlnd.h 的錯誤後,我切換到 DotDeb 儲存庫並從頭開始重建雲伺服器。之後外掛編譯。

您不僅需要 php5-mysqlnd,還需要安裝 mysqlnd_ms 外掛 ( http://pecl.php.net/package/mysqlnd_ms )。

引用自:https://serverfault.com/questions/490470