首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqlnd_ms错误- getaddrinfo失败,未知中的mysqlnd_global_stats

mysqlnd_ms错误- getaddrinfo失败,未知中的mysqlnd_global_stats
EN

Stack Overflow用户
提问于 2013-07-23 03:10:08
回答 1查看 2.8K关注 0票数 3

我正在尝试设置mysqlnd_ms,这样它就可以在从数据库上执行读取操作,在主数据库上执行写入操作。但是,当httpd重新启动时,我得到了这个错误。

代码语言:javascript
复制
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysqlnd_ms.so' - /usr/lib64/php/modules/mysqlnd_ms.so: undefined symbol: mysqlnd_global_stats in Unknown on line 0

我正在运行一个亚马逊EC2 x64 AMI实例,并在一个新实例上运行了以下命令:

代码语言:javascript
复制
sudo yum update

sudo yum install -y gcc make gcc-c++

sudo yum install -y httpd24 php54

sudo yum install -y php54-devel php54-mysqlnd php54-mbstring

sudo pecl install mysqlnd_ms

php -m | grep mysql

我的php.ini添加了以下内容:

代码语言:javascript
复制
mysqlnd_ms.enable=1
mysqlnd_ms.force_config_usage=1
mysqlnd_ms.config_file=/etc/mysqlnd_ms.ini
extension=mysqlnd_ms.so

mysqlnd_ms.ini文件包含以下内容:

代码语言:javascript
复制
{    
"appname": {
    "master": {
        "master_0": {
            "host": "1.2.3.4",
            "db": "dbname",
            "user": "dbuser",
            "password": "dbpswd",
            "socket" : "\/var\/lib\/mysql\/mysql.sock"
        }
    },
    "slave": {
        "slave_0": {
            "host": "12.22.32.42",
            "db": "dbname",
            "user": "dbuser",
            "password": "dbpswd",
            "socket" : "\/var\/lib\/mysql\/mysql.sock"
        }
       }
}
}

为了建立联系,我这样做:

代码语言:javascript
复制
$mysqli = new mysqli("appname", "dbuser", "dbpswd", "schema");

执行上述操作会抛出以下错误:

代码语言:javascript
复制
ERROR: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

Mysqli、mysql和pdo都在服务器上启用。

如果我们直接将其更改为主机名,它将起作用:

代码语言:javascript
复制
$mysqli = new mysqli("1.2.3.4", "dbuser", "dbpswd", "schema");

怎样才能让mysqlnd_ms正常工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-23 05:50:26

问题解决了!

要解决此问题:

  1. 删除行:

mysqlnd_ms.enable=1

mysqlnd_ms.force_config_usage=1

mysqlnd_ms.config_file=/etc/mysqlnd_ms_cfg.ini

extension=mysqlnd_ms.so

从php.ini文件

  1. 创建一个名为"/etc/php.d/mysqlnd_ms.ini“的新文件,并将这些行放入其中
  2. 重新加载httpd
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17795500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档