41

如何解决以下错误?

您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展。

我将 NAS 与 telnet 连接一起使用。

我安装了FFP 0.7

php.ini的在:ffp/etc/php.ini并且我取消了所有我认为有用的东西的注释。

以下是我php.ini文件的一部分;

;If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
;
; For example, on Windows:
;
extension=msql.dll
;
; ... or under UNIX:
;
extension=msql.so
;
; ... or with a path:
;
extension=/ffp/lib/extensions/no-debug-non-zts-20100525/mysql.so
;


extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so

突出的问题是,当我运行时phpinfo(),我看到模块 MySQLi 已激活,但未激活 MySQL。

MySQL 与 PHP 和 Lighttpd Web 服务器一样按预期工作。

我同样有 phpmyadmin 工作。

它在 Zyxel NSA310 上。

此外,当mysqld启动时,它会从我的根目录创建一个快捷方式:ffp/opt/mysql..每次我重新启动我的 NAS 时,快捷方式都会被删除。

有谁可能知道这个技巧?

4

27 回答 27

45

最后我找到了解决方案首先,确保 MySQL 服务器正在运行。在 shell 提示符下键入以下命令:

/etc/init.d/mysql status

如果 MySQL 没有运行,请输入:

/etc/init.d/mysql start

如果未安装 MySQL,请键入以下命令安装 MySQL 服务器:

apt-get install mysql-server

确保安装了 php5 的 MySQL 模块:

dpkg --list | grep php5-mysql

要安装 php5-mysql 模块,请输入:

apt-get install php5-mysql

接下来,重新启动 Apache2 Web 服务器:

/etc/init.d/apache2 restart

于 2014-04-01T07:58:30.983 回答
33

不推荐使用 php mysql api。它是 kaput —— 离开—— 不被使用,finito。

如果您有现代版本的 PHP (> 5.6),那么 Wordpress 应该会自动切换到使用 mysqli。那应该是你的第一次尝试。

如果你不能更新你的 php,而不是试图复活 php 不再支持的东西,只需修补你的 wordpress: http ://wordpress.org/plugins/mysqli/

如果您已经在运行现代版本的 PHP,那么这很可能是因为您的 PHP 版本中没有 mysqli 扩展。您可以使用php -i服务器操作系统进行检查,或者使用<php phpinfo(); 浏览器创建页面并导航到该页面。所有扩展都会有一个部分。

如果您没有安装 mysqli 扩展,请按照官方 PHP 文档中的说明进行操作

于 2013-07-17T08:23:21.803 回答
11

这个 MySQL 库对我有用:

sudo apt-get install php5-mysqlnd-ms
于 2016-05-18T14:47:36.727 回答
11

近七年后,这不断得到不同的答案。†许多与对我有用的方法相似——但并不完全相同。 这对我有用(Ubuntu服务器)。

将站点移动到新服务器,忘记安装 PHP MySQL 模块/扩展。我跑了一个快

apt-get install php-mysql

接着

apachectl restart

八大兵。没有php5、php7;很简单php-mysql

于 2019-08-29T00:54:36.487 回答
10

检查

extension_dir =

如果它在那里,请将其删除。那应该可以解决问题。

于 2013-11-28T04:27:27.837 回答
6

如果人们使用 cPanel 共享 Linux 主机(Godaddy、经销商俱乐部、Hostgator 或任何共享主机),请尝试以下操作:

在软件和服务选项卡下 -> 选择 PHP 版本 -> PHP 选择器 | 扩展

勾选所有与 MySQL 相关的扩展,保存即可。请检查所附图像。

显示 cPanel 中的扩展的图像

于 2017-01-05T16:57:10.377 回答
5

当您升级您的 php 版本时,请确保 apache2 紧随其后。您可以创建一个 phpinfo() 文件,该文件可以显示 apache 仍在使用旧的 php 版本。

在这种情况下,您应该使用 a2dismod php-old-version 和 a2enmon php-mod-version 命令

例子:

在 ubuntu 中,您从 /etc/apache2/mods-enabled 或 phpinfo 文件显示的版本中获取旧版本,然后从 /etc/apache2/mods-available 中获取新版本

> sudo a2dismod php5.6
> sudo a2enmod php7.1
> sudo service apache2 restart
于 2017-05-09T16:36:13.550 回答
5

此错误由 WP 核心文件/wp-includes/load.php创建,函数名称为wp_check_php_mysql_versions().

旧版本的 WP 不支持 MySqli。但是最新的 WP 版本同时支持 MySql 和 MySqli 扩展,而无需安装 PHP 版本

100% 解决了我的问题

就我而言,我刚刚手动更新了 Wordpress 核心文件并解决了这个问题:)

于 2017-06-19T09:04:02.950 回答
4

我正在使用 Fedora 25

sudo dnf search php | grep mysql

php-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases
php-pear-MDB2-Driver-mysqli.noarch : MySQL Improved MDB2 driver mysqli

sudo dnf install php-mysqlnd.x86_64
于 2017-01-24T13:36:27.327 回答
4

这可能是不推荐使用 php mysql api 的原因。如果您使用低于 PHP5.5,只需在您的服务器中更新到 5.6 及更高版本。

于 2017-03-14T10:04:08.910 回答
4

当我将我的网站 PHP 从版本 5.6 升级到 7.2 时,我遇到了这个问题“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”。事实证明,PHP 7.2 版不再支持 mysql 扩展。它现在正在使用 mysqli 扩展。我正在使用旧版本的 WordPress,它仍然使用 mysql 扩展,这就是问题存在的原因。所以我所做的就是将 WordPress 升级为核心。这解决了问题。

这是我手动升级 WordPress 时遵循的步骤。

  1. 首先,我创建了我网站的完整备份。这在出错的情况下非常重要。
  2. 我从 wordpress.org 下载了最新的 WordPress ZIP 文件。
  3. 我将文件解压缩到计算机的本地目录中。
  4. 我去了我的网站根目录并删除了您的“wp-includes”和“wp-admin”目录。我使用 Filezilla 软件使用 sFTP 连接。
  5. 我从解压到网站根目录的新版 WordPress 中上传了新的 wp-includes 和 wp-admin 目录,并替换了刚刚删除的目录。
  6. 我没有删除 wp-content 目录或该目录中的任何文件。我刚刚将新版本 WordPress 中 wp-content 目录中的文件复制到我现有的 wp-content 目录中。所有现有的同名文件都已被覆盖。
  7. 我从新版本 WordPress 的根 ('/') 目录中复制了所有文件,这些文件已解压缩到我的网站根目录(或 WordPress 安装的根目录)中。现有文件已被覆盖,新文件已被复制。wp-config.php 文件没有受到影响,因为 WordPress 从未随 wp-config.php 文件一起分发。
  8. 我比较了随 WordPress 分发的 wp-config-sample.php,但没有发现任何要更改的内容,所以我只使用了旧的。
  9. 我清除了浏览器缓存以确保我可以看到所有更改。
  10. 我检查了网站,现在没有错误。升级完成。
于 2019-04-04T21:19:08.540 回答
3

如果您安装了 Wordfence 插件,我发现注释掉 .htaccess 文件中的 suPHP_ConfigPath 行会使网站恢复生机:

# Wordfence WAF
#<IfModule mod_suphp.c>
#   suPHP_ConfigPath '/home/a1614947/public_html'
#</IfModule>

我也向 Wordfence 报告了这一点。

于 2016-07-02T13:18:21.747 回答
3

确保勾选 Mysqli 和 mysqlnd,如屏幕截图所示 在此处输入图像描述

于 2018-10-04T15:16:31.347 回答
3

就我而言,使用 CPanel PHP 选择器并选择 mysqli 和 mysqlnd 有效。 确保保存并重新检查一次

于 2018-11-16T11:47:17.773 回答
2

我在 resellerclub 托管中遇到了与“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”相同的问题。

我浏览了这个线程并知道php版本应该大于> 5.6,这样wordpress就会自动转换为mysqli

然后登录到我的 cpanel 在 cpanel 中搜索 php 以检查版本,幸运的是能够发现我的 php 版本是 5.2 并通过确保在选项窗口中标记 mysqli 并将其更改为 5.6 并保存它工作正常现在。

于 2017-06-08T11:53:49.700 回答
2

这个问题是由于缺少数据库。如果是全新安装,则需要手动创建一个并为用户分配权限。

请检查 wp-config.php 是否有任何错误配置,并确保数据库和表没有丢失或损坏。

于 2017-06-22T04:52:44.127 回答
2

只需安装 apt-get install php5-mysqlnd 重启 Apache 服务 apache2 restart

于 2017-09-13T07:19:05.637 回答
2

检查 mysqli 和 mysqlnd

确保在您的 php 选择器中选中 msqli 和 mysqlnd。然后将您的 .htaccess 文件的名称更改为 .htaccess_old。看看您的网站现在是否可以加载。

如果它有效,然后转到您的仪表板并保存您的永久链接,它将创建一个新的 .htaccess 文件。

这对我有用。

于 2019-09-12T15:40:30.643 回答
0

对于 php 5.6 sudo apt-get install php5.6-mysqlnd-ms并重新启动您的 apache

/etc/init.d/apache2 restart
于 2019-01-10T16:54:21.687 回答
0

此消息的来源与我的解决方案无关。

我的服务器的 IP 地址发生了变化,我没有更改<VirtualHost>apache 服务器的 httpd.conf 中的指令。

一旦我将其更改为正确的 IP 地址,消息就消失了,Wordpress 又开始工作了。

于 2019-02-28T08:37:25.183 回答
0

我已经解决了这个问题,只需在 .htaccess 文件中添加以下代码。我希望这也对你们有用。

第 1 步:从服务器更改 PHP 版本。

第 2 步:根据您的 PHP 版本(从服务器选择)在您的 .htaccess 文件中添加以下代码。

要切换到 PHP 4.4:

AddHandler application/x-httpd-php4 .php

要切换到 PHP 5.0:

AddHandler application/x-httpd-php5 .php

要切换到 PHP 5.1:

AddHandler application/x-httpd-php51 .php

要切换到 PHP 5.2:

AddHandler application/x-httpd-php52 .php

要切换到 PHP 5.3:

AddHandler application/x-httpd-php53 .php

要切换到 PHP 5.4:

AddHandler application/x-httpd-php54 .php

要切换到 PHP 5.5:

AddHandler application/x-httpd-php55 .php

要切换到 PHP 5.6:

AddHandler application/x-httpd-php56 .php

要切换到 PHP 7:

AddHandler application/x-httpd-php7 .php

要切换到 PHP 7.1:

AddHandler application/x-httpd-php71 .php 
于 2019-03-29T07:56:43.287 回答
0

在运行 PHP 版本 7.3.x 的 Oracle Linux 7.x 上,您需要运行sudo yum install php-mysqlnd才能安装缺少的 PHP 的 MySQL 扩展。

请记住重新启动 PHP 和/或您的服务器以使更改生效。

于 2019-05-26T19:12:59.987 回答
0

对我来说(ubuntu 16.04),获胜者是:

sudo apt install php7.0-mysql
于 2019-06-13T00:58:25.480 回答
0

我刚刚删除了我根本不使用的自定义 php ini。问题消失了,网站运行正常。

于 2019-07-18T18:23:32.713 回答
0

由于很少有人分享勾选mysqlimysqlind的复选框

但是Hostgator(虚拟主机站点)现在不提供通过 cpanel 选择扩展的选项,因为该选项已删除选择 PHP,现在它提供了php 管理器的选项

你可以只选择你想要的 PHP 版本而不是扩展名。

解决方案:- 打电话给hostgator,他们第一次说要与您的开发人员联系,(我问了我的兄弟,他在本地下载了文件并验证它在本地系统上工作正常)<-虽然这不是必需的

再次打电话给hostgator,他们的后端团队安装了缺少的扩展程序并解决了。

下面是在找不到扩展名时给出此错误的代码,您可以通过 ftp在load.php中找到此行。

if ( ! extension_loaded( 'mysql' ) && ! extension_loaded( 'mysqli' ) && ! extension_loaded( 'mysqlnd' ) && ! file_exists( WP_CONTENT_DIR . '/db.php' ) ) {
    require_once ABSPATH . WPINC . '/functions.php';
    wp_load_translations_early();
    $args = array(
        'exit' => false,
        'code' => 'mysql_not_found',
    );
    wp_die(
        __( 'Your PHP installation appears to be missing the MySQL extension which is required by WordPress.' ),
        __( 'Requirements Not Met' ),
        $args
    );
    exit( 1 );
}

}

于 2020-05-13T08:58:02.997 回答
0

我遇到了同样的问题。

我检查了我网站的 php 版本,它很旧。我已更正并将其重置为最新版本。

该问题已通过重置 php 版本解决。

于 2021-05-25T19:38:45.350 回答
0

这种情况的一种常见情况是升级到 PHP 7.4 或更高版本时,由于启用了 nd_mysqli 而发生冲突。

修复:在 [cPanel > Select PHP Version] 中禁用 nd_mysqli 扩展并启用 mysqli 扩展

启用以下 mysqli 扩展:

mysqlnd
nd_mysqli
nd_pdo_mysql

禁用以下扩展:

mysqli
pdo_mysql
于 2021-11-17T15:35:41.753 回答