65

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

phpinfo();脚本不显示任何关于 mysqli 或 mysql 扩展的信息。

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

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

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

任何人都有另一个可能的解决方案?

4

19 回答 19

120

最新的 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 下。

重启阿帕奇:

sudo systemctl restart apache2

验证并按 Enter。

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

于 2012-05-31T14:16:51.050 回答
32
sudo apt-get install php5-mysql
sudo apt-get install php5-mysqlnd 

试试这两种方法,它对我有用

于 2014-04-04T13:36:59.453 回答
30

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

mysqli.allow_local_infile = On

重启阿帕奇:

sudo /etc/init.d/apache2 restart
于 2012-09-11T17:48:16.633 回答
7

只需重新启动 apache2 和 mysql:

  • 阿帕奇2: sudo /etc/init.d/apache2 restart

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

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

于 2013-09-26T07:16:20.317 回答
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

希望能帮助到你!

于 2017-10-07T23:48:07.747 回答
5

我遇到了同样的问题并通过执行以下步骤解决了它:

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

  2. 运行这些命令

对于 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
  1. 编辑ini文件并寻找mysqli。通过删除取消注释该行 适用于所有 php 版本

    扩展=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
于 2020-01-08T07:37:29.850 回答
2

我通过编辑 /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

在没有路径的情况下添加它不起作用。

然后重新启动后它工作。

于 2013-02-26T21:27:35.323 回答
2

对于 ubuntu 用户,打开您的终端并输入以下命令

sudo apt-get install mysql

之后只需键入以下内容重新启动 apache2

sudo service apache2 restart 

刷新您的浏览器并享受 phhmyadmin

于 2019-01-15T13:15:06.027 回答
2

对于使用 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
于 2020-05-11T11:13:13.173 回答
1

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

于 2013-04-13T13:56:47.777 回答
1

您需要 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.
于 2020-01-21T03:10:15.947 回答
0

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

于 2012-12-11T20:21:13.343 回答
0

在 ubuntu 12.04 我不得不改变mssql.compatability_mode = On。穿上并工作

于 2014-06-10T17:26:11.817 回答
0

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

a2dismod php5

并激活php7

a2enmod php7

希望它可以帮助任何人!

于 2019-03-26T12:08:03.580 回答
0

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

extension= php_mysqli.dll

并停止并启动 apache 和 MySQL 它将工作。

于 2019-04-18T10:10:43.657 回答
0

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

  ;extension=mysqli to   extension=mysqli

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

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

然后重新启动服务以确保

systemctl start mysql
于 2020-02-05T15:30:00.900 回答
0

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

在此范围内,搜索;extension=mysqli、取消注释并更改mysqlimysqlnd,使其看起来像这样extension=mysqlnd。我尝试使用mysqli,但遇到了同样的错误,就好像我没有启用它但mysqlnd对我有用。

于 2020-05-07T13:34:52.850 回答
0

有同样的问题,但在我的情况下,原因是 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 将无法工作,但显示的原因将是“缺少 mysqli 扩展”

于 2020-10-29T09:41:19.643 回答
0

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

该解决方案在 Ubuntu 20.04 Desktop 上使用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 apache2后来,通过and重新启动了这两个(PHP 和 MySQL)sudo systemctl restart mysql。刷新 Chrome,phpMyAdmin 响应登录屏幕。

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

于 2021-06-25T14:16:49.407 回答