缺少扩展 mysqli,phpmyadmin 不起作用

Posted

技术标签:

【中文标题】缺少扩展 mysqli,phpmyadmin 不起作用【英文标题】:Extension mysqli is missing, phpmyadmin doesn't work 【发布时间】:2019-03-06 21:19:50 【问题描述】:

我在 ubuntu 12.04 上遇到了 phpmyadmin 的问题。 我已经安装了apache2、php5、mysql和phpmyadmin。

phpinfo(); 脚本,不要显示任何关于 mysqli 或 mysql 扩展的内容。

当我尝试启动 phpmyadmin 时出现此错误:

---- **phpMyAdmin - 错误** -------- **缺少 mysqli 扩展。请检查您的 PHP 配置。** ----

在 php.ini 文件中,我取消了 extension=mysql.so 行的注释,但不起作用...

有人有其他可能的解决方案吗?

【问题讨论】:

取消注释后是否重新启动了 apache? 在这之后我觉得有些愚蠢.. :P 谢谢亨利,我今天打开了我的电脑,一切正常,谢谢! 重启apachesudo /etc/init.d/apache2 restart 如果您得到答案,请关闭此问题 【参考方案1】:

最新的 phpMyAdmin 版本需要 mysqli 扩展并且将不再与 mysql 一起使用(注意其名称末尾的额外“i”)。

适用于 PHP 5

sudo apt-get install php5-mysqli

适用于 PHP 7.3

sudo apt-get install php7.3-mysqli

将安装包含旧的和新的包,所以你需要做的就是添加

extension=mysqli.so

在您的 php.ini 中,在主题 Dynamic Extensions 下。

重启apache:

sudo systemctl restart apache2

验证并按回车。

应该完成!如果问题仍然存在,请删除浏览器缓存。

【讨论】:

如果问题仍然出现,请清除浏览器缓存 也适用于 php7.4,只需使用:sudo apt-get install php7.4-mysqli【参考方案2】:
sudo apt-get install php5-mysql
sudo apt-get install php5-mysqlnd 

两种都试一下,对我有用

【讨论】:

我的 apt-get 找不到这些包。有谁知道他们在哪个存储库中? 实际上 php5 版本已从 repo 中弃用。请从链接askubuntu.com/questions/761713/… 尝试此 PPA @HardikGajjar 这个问题是关于降级到 php5 的。为什么不直接安装php7.0版本呢? $ sudo apt-get install php7.0-mysql @NealGokli 就我而言,我必须使用 php5,因为我无法在 Debian Jessie 上安装 php7.0-gd。它需要太高版本的 libwebp5 无法通过 apt 获得。以前可以用,但是用了半年左右就坏了。 谁能解释为什么会出现这个问题?在我的本地主机中,它发生了很多次。【参考方案3】:

如果您在 localhost 上运行 PHPMyAdmin,请取消文件 /etc/php5/apache2/php.ini 中的注释这一行:

mysqli.allow_local_infile = On

重启 Apache:

sudo /etc/init.d/apache2 restart

【讨论】:

谢谢。当 MySQLi 扩展安装正确,但 phpMyAdmin 在 localhost 上运行时使用此解决方案。 也适用于 PHP 7(请注意新的 php.ini 位置是 /etc/php/7.0/apache2/php.ini)。【参考方案4】:

只需重启apache2和mysql:

apache2: sudo /etc/init.d/apache2 restart

mysql:sudo /etc/init.d/mysql restart

然后刷新你的浏览器,享受 phpmyadmin :)

【讨论】:

真的就这么简单。该扩展通过 phpmyadmin 安装,需要重新启动(apache、php5-fpm 等)。这里的许多“解决方案”确实将重新加载网络服务器作为最后一步,事实上 - 在我看来这是唯一需要的。 这真的没有那么简单。 :-) 你需要安装 mysql/mysqli 扩展。 很久以前,我问过这个,从来没有结束过这个话题。事实上,第一条评论回答了我的问题,但这是评论,所以我将其作为正确答案。【参考方案5】:

我尝试了很多答案,但似乎都不起作用,因为 php7.0 不是默认的。

sudo apt-get upgrade

似乎为我完成了这项工作,但之后我不得不重新安装 php7.0 和 phpmyadmin:

sudo apt-get install php7.0 php7.0-mysql
sudo apt-get install apache2 apache2-mod-php7.0
sudo apt-get install phpmyadmin

希望对你有帮助!

【讨论】:

虽然你很小,但你的答案很大。很有帮助。【参考方案6】:

我遇到了同样的问题,并通过以下步骤解决了

    首先检查 PHP 版本。如果您有多个 PHP 版本。假设你有 php7.0、php7.1 和 php 7.2 等 PHP 版本

    运行这些命令

适用于 PHP7.0

sudo apt-get install php7.0-mysql
sudo apt-get install php7.0-mysqlnd 

对于 PHP7.1

sudo apt-get install php7.1-mysql
sudo apt-get install php7.1-mysqlnd 

对于 PHP7.2

sudo apt-get install php7.2-mysql
sudo apt-get install php7.2-mysqlnd 

适用于 PHP7.3

sudo apt-get install php7.3-mysql
sudo apt-get install php7.3-mysqlnd

    编辑 ini 文件并查找 mysqli。通过删除 ; 取消注释该行 适用于所有 php 版本

    extension=mysqli.so

/etc/php/<php.version>/apache2/php.ini

适用于 PHP7.0

sudo nano /etc/php/7.0/apache2/php.ini

对于 PHP7.1

sudo nano /etc/php/7.1/apache2/php.ini

对于 PHP7.2

sudo nano /etc/php/7.2/apache2/php.ini

适用于 PHP7.3

sudo nano /etc/php/7.3/apache2/php.ini

最后重启apache服务器

sudo /etc/init.d/apache2 restart

【讨论】:

【参考方案7】:

我通过编辑 /usr/local/zend/etc/php.ini 解决了这个问题。

(通过执行 netstat -nlp ¦ grep apache,然后 strace -p somepid ¦ grep php.ini 找到它)。

在文件的最后,我添加了:

extension=/usr/lib/php5/20090626+lfs/mysql.so
extension=/usr/lib/php5/20090626+lfs/mysqli.so
extension=/usr/lib/php5/20090626+lfs/mcrypt.so

不加路径是不行的。

然后在重新启动后它工作了。

【讨论】:

【参考方案8】:

ubuntu 用户打开终端并输入以下命令

sudo apt-get install mysql

之后只需输入这个来重新启动 apache2

sudo service apache2 restart 

刷新您的浏览器并享受 phhmyadmin

【讨论】:

【参考方案9】:

对于使用 php-fpm 的 Ubuntu 20.04 用户 我通过在 php conf 中添加完整路径解决了这个问题:

编辑/etc/php/7.4/fpm/conf.d/20-mysqli.ini

并替换

extension=mysqli.so

与:

extension=/usr/lib/php/20190902/mysqli.so

【讨论】:

这个解决方案在带有 PHP 7.4PHP 8.0.7MySQL 8.0.25的 Ubuntu 20.04 桌面上为我工作> 设置。我所做的是编辑 /etc/php/7.4/apache2/php.ini/etc/php/8.0/apache2/php.ini 并按照您在两个文件中所说的替换 e 行。后来sudo systemctl restart apache2sudo systemctl restart mysql重新启动了PHP和MySQL。【参考方案10】:

检查 extension_dir 是您喜欢从 phpinfo() 检查的事情之一。在我的情况下,默认情况下是 extension_dir = "./" 这是错误的。将其更改为 extension_dir = './ext/' 或所有扩展 dll 当前所在的位置。

【讨论】:

【参考方案11】:

您需要 MySQLi 模块。手动安装phpMyAdmin时通常会出现此错误。

sudo apt-get install php7.3-mysql

它会返回给你。

[Creating config file /etc/php/7.3/mods-available/mysqlnd.ini with new version]

[Creating config file /etc/php/7.3/mods-available/mysqli.ini with new version]

那么。

sudo service apache2 restart.

那么。

Press F5 on your browser.

【讨论】:

【参考方案12】:

这对我有用,用 php 和 mysql 脚本创建一个数据库并打开 mysql 控制台并输入 create user 'yourName'@'127.0.0.1' 然后输入 grant all permissions on 。 到 'yourName'@'127.0.0.1' 然后打开浏览器转到 localhost 并创建一个数据库,然后转到您的 phpmyadmin 页面,您会看到它在那里弹出。

【讨论】:

【参考方案13】:

在 ubuntu 12.04 我不得不更改 mssql.compatability_mode = On。 穿上就可以了

【讨论】:

你在哪里改变这个?【参考方案14】:

由于我在升级后遇到了这个问题,我只是禁用了 Apache2-php5

a2dismod php5

并激活php7

a2enmod php7

希望它可以帮助任何人!

【讨论】:

【参考方案15】:

如果您正在使用 XAMPP 等,只需将此行添加到您的 php.ini 中。同时检查它是否已经存在,只需删除;从它的前面

extension= php_mysqli.dll

然后停止并启动 apache 和 MySQL,它就会工作。

【讨论】:

【参考方案16】:

我在 ubuntu 上遇到了同样的错误,对我有用的是在 /etc/php/7.3/apache2/php.ini 中编辑 2 行

  ;extension=mysqli to   extension=mysqli

并在取消注释后将 extension 变量位置提供给 mysqli.so

   extension=/usr/lib/php/20170718/mysqli.so

然后重新启动服务以确保

systemctl start mysql

【讨论】:

【参考方案17】:

作为记录,我的系统是 Ubuntu Server 20.04,这里的解决方案都不起作用。对我来说,我安装了 PHP 7.4,我必须编辑 enter code here/etc/php/7.4/apache2/php.ini`。

在其中搜索;extension=mysqli,取消注释并将mysqli 更改为mysqlnd,使其看起来像这样extension=mysqlnd。我尝试使用mysqli,但遇到了同样的错误,就好像我没有启用它但mysqlnd 为我工作一样。

【讨论】:

【参考方案18】:

遇到了同样的问题,但在我的情况下,原因是 Ubuntu 和 php 版本的更新 - 从 18.04 和 php-7.2 到 20.04 和 php-7.4。

nginx 服务器是相同的,所以在我的 /etc/nginx/sites-available/default 中是旧数据:

server 
  location /pma 
    location ~ ^/pma/(.+\.php)$ 
      fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    
  

我无法让 phpmyadmin 处理任何 php.ini 更改以及来自该线程的所有答案,但在某个时刻我打开了 /etc/nginx/sites-available/default 并意识到,我仍然有旧的php的版本。所以我只是把它改成

fastcgi_pass unix:/run/php/php7.4-fpm.sock;

问题消失了,phpmyadmin 神奇地开始工作,没有任何 mysqli 文件投诉。我什至仔细检查了它,但是是的,它就是这样工作的 - 如果你的 nginx 配置文件中的 php-fpm.sock 版本错误,你的 phpmyadmin 将无法工作,但显示的原因将是 'The mysqli extension不见了'

【讨论】:

【参考方案19】:

我希望我的成功回答对最近的人有所帮助,因为我不得不尝试许多混合搭配然后找到它:

此解决方案在 Ubuntu 20.04 桌面上使用 PHP v7.4PHP v8.0.7MySQL v8.0.25 设置对我有效。

我所做的是编辑 /etc/php/7.4/apache2/php.ini/etc/php/8.0/apache2/php.ini 文件并替换 extension=mysqli.soextension=/usr/lib/php/20190902/mysqli.so 在这两个文件中。

后来,sudo systemctl restart apache2sudo systemctl restart mysql 重新启动了这两个(PHP 和 MySQL)。刷新 Chrome,phpMyAdmin 响应登录屏幕。

更新:请检查您是否还有/usr/lib/php/20200930/mysqli.so 文件。我对此进行了测试,因为它按目录日期看起来较新,并且这在两个PHP 文件中也都可以使用extension=/usr/lib/php/20200930/mysqli.so

【讨论】:

以上是关于缺少扩展 mysqli,phpmyadmin 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

安装phpMyAdmin缺少mysqli扩展该怎么办?

phpMyAdmin - 错误:缺少 mysqli 扩展 [关闭]

inux下phpMyAdmin 缺少 mysqli 扩展

为啥登陆phpadmin的界面提示缺少mysqli扩展,请检查php配置

“缺少 mysqli 扩展”,但它位于扩展目录中

缺少 mysqli 扩展。请检查您的 PHP 配置