缺少扩展 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.4、PHP 8.0.7、MySQL 8.0.25的 Ubuntu 20.04 桌面上为我工作> 设置。我所做的是编辑/etc/php/7.4/apache2/php.ini
和 /etc/php/8.0/apache2/php.ini
并按照您在两个文件中所说的替换 e 行。后来sudo systemctl restart apache2
和sudo 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.4、PHP v8.0.7 和 MySQL v8.0.25 设置对我有效。
我所做的是编辑 /etc/php/7.4/apache2/php.ini
和 /etc/php/8.0/apache2/php.ini
文件并替换
extension=mysqli.so
和
extension=/usr/lib/php/20190902/mysqli.so
在这两个文件中。
后来,sudo systemctl restart apache2
和 sudo 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 扩展 [关闭]