4

我在 MacOSX Lion 上有一个自定义安装,包括以下内容:

  1. 原生 PHP 升级到 5.4,就像一个魅力。
  2. 安装的 MySQL,从 /usr/local/mysql-5.5.25-osx10.6-x86_64/bin/mysql 运行,就像一个魅力,Workbench 连接并可以执行操作。
  3. 编辑 /etc/ 中的 php.ini 以激活以下内容:

    extension=php_mysqli.so
    extension=php_pdo_pgsql.so
    extension=php_pdo_mysql.so
    
  4. phpinfo() 说明如下:

    PDO

    PDO 支持已启用 PDO 驱动程序 mysql、pgsql、sqlite

    pdo_mysql

    启用 MySQL 的 PDO 驱动程序客户端 API 版本 mysqlnd 5.0.10 - 20111026 - $Id: b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $

    指令本地值主值 pdo_mysql.default_socket /var/mysql/mysql.sock /var/mysql/mysql.sock

这意味着它有效,是吗?

不过有两个问题:

  • 没有 /var/mysql/mysql.sock 这样的文件,它在 /tmp/mysql.sock 中。但我使用 PDO 选项配置并构建了 php: --with-mysql=mysqlnd --with-mysqli=mysqlnd --without-pear --with-pdo-mysql=mysqlnd --with-mysql-sock=/var /mysql/mysql.sock。如果我将 ini 设置更改为 /tmp/mysql.sock 没有效果,它反映在 php.ini 中,但错误保持不变。

  • 当我尝试在 PHP 中实例化 PDO 类时,会发生这种情况:未捕获的异常 'PDOException' 和消息'找不到驱动程序'

当我尝试以老式的 mysqli 方式从 PHP 访问 MySQL 时,我得到了这个:

无法连接到 MySQL:(2002)没有这样的文件或目录警告:main():无法在...中获取 mysqli

我还能尝试什么让我的 PHP 和我的 MySQL 玩得更好?

4

1 回答 1

6

解决方案是执行以下操作:

  1. 更改 php.ini 中的 .sock 路径以反映实际路径
  2. 重新启动您的计算机,而不仅仅是 apache

似乎 php.ini 更改在执行时未加载

$ sudo apachectl restart

并且需要在考虑到它们之前重新启动 Macbook。

于 2012-06-22T09:06:19.590 回答