php - MacPorts Apache : PDO works but mysql_connect and mysqi_connect does not

标签 php mysql wordpress macos apache

我尝试在我的 Mac 上配置 Wordpress。我使用带有 MySQL 的 Apache 服务器,通过 MacPorts 安装。

因此,在 phpMyAdmin 中,我创建了一个带有“hellowp”数据库​​的“hellowp”用户。我可以使用该用户正确登录,并且可以访问 hellowp 数据库。

但是当我在 wp-config.php 中或从 Wordpress 配置 GUI 中设置这些参数时,Wordpress 无法登录数据库。

我启用了调试,这是我得到的错误:

Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /private/var/www/hellowp/wp-includes/wp-db.php on line 1342

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /private/var/www/hellowp/wp-includes/wp-db.php on line 1372

Warning: mysql_connect(): No such file or directory in /private/var/www/hellowp/wp-includes/wp-db.php on line 1372

我的 PHP 版本是 5.5.10。我将此服务器用于许多项目,因为有些项目在 Drupal 上运行,我对它们没有任何问题。

我也尝试在 Wordpress 中以 MySQL root 用户身份登录,但错误仍然存​​在。

编辑 1: 我尝试从 MySQL Workbench 和 SURPRISE 登录我的服务器,在 127.0.0.1 找不到服务器...奇怪的是 phpMyAdmin 仍在工作,其他项目和Drupal 使用数据库没有任何问题。我将对此进行调查,也许是防火墙问题。当我有消息时会更新。

编辑 2: 好的,所以我检查了你们中的许多人所说的,是的,你们中的许多人是对的:来自 PHP 的 MySQL 连接仅在使用 PDO 时有效(我在所有我的项目和 Drupal 做的)。 mysql_connect 和 mysqli_connect 触发错误。 但事实是我不会重写 Wordpress,而且我使用的是最新版本。因此,我将尝试找到一种解决方案,使 mysql_connect 和 mysqli_connect 在我的 PHP 配置上正常工作。

**编辑 3:解决方案:** 几个月前我安装了 Percona 服务器(一个 MySQL 分支)来替换 mysql 服务器。在这个安装过程中,在我的 php.ini 中,我只为 PDO 设置了套接字,而不是为 mysqli 和 mysql。因此,我必须在我的 php.ini 中为所有 mysql 扩展设置套接字。这是那些行:

pdo_mysql.default_socket="/opt/local/var/run/percona/mysqld.sock"
mysql.default_socket = "/opt/local/var/run/percona/mysqld.sock"
mysqli.default_socket = "/opt/local/var/run/percona/mysqld.sock"

最佳答案

第一条错误消息告诉您 Wordpress 找不到您的数据库,很可能是您的主机名不正确 - 它通常是“本地主机”,但您可以尝试 127.0.0.1,我认为这更适合 Mac。

其余的错误消息具有误导性——如果 wordpress 无法建立 Mysqli 连接,它将尝试已弃用的 mysql,在您的情况下,也会失败,因为它找不到数据库。

关于php - MacPorts Apache : PDO works but mysql_connect and mysqi_connect does not,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23449377/

相关文章:

php - 如何使用 PHP 将 MySQL 查询结果作为嵌套数组获取?

php - 来自数据库记录的多级菜单

php - 如何在 PHP 中获取枚举的默认值?

mysql - 查找外键时将 CSV 导入 MySQL

php - 使用 WPML 插件更改所有语言的 "return to shop"URL

WordPress 移动菜单项未显示在移动 View 中

PHP在多维数组中找到第二大元素值

php - 调整字体大小 FPDF

javascript - 如何将 JavaScript 中声明的变量发送到服务器端 PHP 脚本,以便我可以使用该变量执行 SQL 查询?

php - Kriesi 分页不起作用