【问题标题】:Installed MacPorts PHP, now cannot interface with MySQL - Mac OS X安装了 MacPorts PHP,现在无法与 MySQL 交互 - Mac OS X
【发布时间】:2011-07-18 06:12:53
【问题描述】:

我有标准版本的 PHP,它与 Mac OS X 捆绑在一起运行良好,但我想升级到新版本,所以我使用了MacPorts,一切顺利。然后我编辑了我的.conf 文件并进行了检查,现在我的 PHP 版本已更新到最新版本。

但是,在运行我正在处理的 PHP 项目时,现在似乎我无法与 MySQL 交互,该 MySQL 正在使用与 Mac OS X 捆绑在一起的标准 PHP 安装(注意:我最初是从他们的安装程序从他们的主页)。

我的问题是:有没有办法让 MacPort PHP 与我的旧 MySQL 安装一起工作?

【问题讨论】:

    标签: php mysql macos macports


    【解决方案1】:

    您是否从 MacPorts 安装了 php5-mysql 软件包?

    MacPorts 中 PHP 的默认安装相对较少,但有很多附加模块可用。

    【讨论】:

    • 运行/opt/local/bin/php -i并查看它是否列出了mysql(和mysqli)扩展。
    • PHP 警告:PHP 启动:无法加载动态库 './pdo_mysql.so' - dlopen(./pdo_mysql.so, 9)
    • 在 /opt/local/lib/php/extensions(和子目录)中查找该文件
    • 嗨,我有:mysql.so - mysqli.so 和 pdo_mysql.so
    【解决方案2】:

    正如 Alnitak 在 cmets 中指出的,MacPorts 1.9.2 没有“mysql”变体。 不过还是有办法解决的。

    php5-mysql 端口有一个+mysql5 变体,但有更好的方法来解决问题。

    这是一篇很棒的博文http://top-frog.com/2009/08/26/macports-php5-mysql-mysqlnd/ 仅说明 php5-mysql 安装后脚本所做的相同短语:

    To use mysqlnd with a local MySQL server, edit /opt/local/etc/php5/php.ini and set mysql.default_socket, mysqli.default_socket and pdo_mysql.default_socket to /opt/local/var/run/mysql5/mysqld.sock

    因此,如果您使用的是 MacOS X Server 本机 MySQL 服务器,则可以通过运行 ps ax | grep mysql 轻松获得该套接字。对我来说是/var/mysql/mysql.sock

    你当然可以随时更改/etc/my.cnf中的套接字

    【讨论】:

      【解决方案3】:

      在疯狂的时刻,我解决了这个问题。

      使用 MacPorts 从现有的 PHP 中删除,然后重新安装,但这次在安装中添加了 +mysql。

      完成后,还使用 ​​MacPorts 安装 php5-mysql。然后就成功了!

      【讨论】:

      • 奇怪 - 我安装的 MacPorts (v1.9.2) 没有 PHP5 的“+mysql”变体。
      • 你应该检查我的评论,一切都会开箱即用,无需安装端口变体。
      【解决方案4】:

      我在安装 mysql 和 php5 时也遇到了同样的问题。幸运的是,我能够按照 Vlads 的建议解决这个问题;以一种不同的方式。请注意,不需要 php5-mysql 端口

      试试/usr/bin/php -i|grep mysql|grep socket,结果是

      mysql.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
      mysqli.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
      pdo_mysql.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
      

      注意php指向错误的地方;应该是/opt/local/var/run/mysql5/mysqld.sock

      解决方案:创建符号链接以更正路径

      sudo mkdir /var/mysql
      sudo ln -s   /opt/local/var/run/mysql5/mysqld.sock  /var/mysql/mysql.sock
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-02
        • 1970-01-01
        • 2010-09-14
        • 1970-01-01
        • 2010-09-30
        • 2016-10-08
        • 2012-03-18
        • 1970-01-01
        相关资源
        最近更新 更多