Debian 6 上的 PHP mysqlnd

Debian 6 上的 PHP mysqlnd

我已经通过以下方式安装了 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 的错误。

答案1

你不仅需要 php5-mysqlnd,还需要 mysqlnd_ms 插件(http://pecl.php.net/package/mysqlnd_ms) 已安装。

答案2

因此,在收到有关缺少 mysqlnd.h 的错误后,我切换到 DotDeb 存储库并从头开始重建云服务器。之后插件编译成功。

相关内容