【问题标题】:Access to mysql database does not work anymore after php upgradephp升级后无法访问mysql数据库
【发布时间】:2013-08-25 09:31:36
【问题描述】:

我使用链接 http://php-osx.liip.ch/ 在(我的 mac osx lion)上将我安装的 php 5.3.15 升级到了 5.4.16。 (之后什么也没做;我通过 phpinfo() 检查了新安装的版本。

当我在浏览器中加载开发的 html 页面时,我注意到该页面不再从我的(本地 mysql)数据库中加载特定信息(我仍然可以通过 phpMyAdmin 访问数据库。)输入命令 php -v仍然显示旧的 php 版本 5.3.15。在 php 升级之前,我开发的 html 页面运行良好。

升级时是否有我忘记的设置?有什么建议吗?

提前感谢您的帮助(ps:我只是一个初学者,对这类安装不是很熟悉)。

【问题讨论】:

    标签: php macos


    【解决方案1】:

    根据您发布的链接,安装程序会添加一个新的 php.ini 文件,位于:

    /usr/local/php5/php.d/99-liip-developer.ini

    php.ini 文件指定了 mysql 套接字文件的位置。如果在新的 php.ini 文件中未正确设置此指令,您将无法连接到数据库。我建议将 mysql 默认套接字设置从旧的 php.ini 文件复制到新的。请记住,mysql、mysqli 和 pdo 有多个默认套接字设置。

    【讨论】:

    • 感谢您的评论(!)。但是,安装程序尚未在 /usr/local/php5/php.d/99-liip-developer.ini 安装 php.ini 文件。事实上, 99-liip-developer.ini 是一个ini文件(不是目录......)(正如我刚刚检查过的那样)。它包括设置'mysql.default_socket = /tmp/mysql.sock'。 (厚厚的初学者问题:)我如何找到旧的 php.ini 文件? (仅供参考,使用coolestguyplanettech.com/downtown/… 处的说明安装了以前的 php 5.3.15
    • 我相信与 OSX 捆绑的 PHP 安装的默认 php.ini 位置是 /usr/local/php/php.ini。有关更多信息,请参阅:php.net/manual/en/install.macosx.bundled.php
    • 感谢评论。使用 phpinfo() 表明新的 php.ini 文件位于目录 /usr/local/php5/lib 中,并且此 php.ini 文件包含“mysql.default_socket =”(因此没有参考)。我将其更改为“mysql.default_socket = /tmp/mysql.sock”并重新启动服务器,但开发的网页(比如 page.html)仍然没有从数据库加载信息。然后我发现当我直接在网络浏览器中加载get.php时,page.html调用的php页面(get.php)(使用jquery ajax调用$.get())确实有效(为此我添加了一个'echo' 行和 var_dump() 来自数据库的信息)。
    • 更新:问题已解决;正如我在之前的评论中已经指出的那样,我发现我的第一个结论是错误的,因为我的问题不是由软件升级的配置问题引起的。问题的原因是相关开发的 php 文件(由 get.php 使用)中的编码“错误”(定义了两次),这显然被 php 5.3 版本忽略,但 5.4 没有。版本
    猜你喜欢
    • 2012-08-18
    • 1970-01-01
    • 2018-09-08
    • 2018-07-12
    • 2019-07-27
    • 2012-09-06
    • 2018-10-03
    • 2019-01-21
    • 1970-01-01
    相关资源
    最近更新 更多