phpMyAdmin - MySQL扩展丢失

10

我分别安装了Apache、PHP、MySQL和phpMyAdmin,并且没有使用编译,到目前为止所有都运行正常,除了phpMyAdmin。

我遇到的问题是当尝试调用以下内容时,错误信息显示“缺少MySQL扩展”:

localhost/phpmyadmin/index.php

同时,当我访问以下内容时:

localhost/phpmyadmin/setup/index.php

出现两个消息,我不知道这是否正常:

  

Bzip2压缩和解压缩需要函数(bzopen, bzcompress),但该系统上无法使用。

还有:

  

Zip解压缩需要函数(zip_open),但该系统上无法使用。

有什么建议吗?


如果您在一个 PHP 文件中编写了 <?php phpinfo(); ?>,那么 MySQL 扩展是否已经加载?如果没有加载,您需要在 php.ini 中激活它。 - Jan Dragsbaek
10个回答

12

首先,请确保您已正确安装了mysql。您可以通过检查是否可以使用mysql命令提示符访问mysql来确保它是否正常工作。因此,如果您的mysql工作正常,则可能没有加载。为此,请按照以下步骤操作:

首先,您必须找到您的php.ini文件。它可以在任何地方,但是如果您创建一个带有

<?php phpinfo(); ?>

编辑服务器的php.ini文件并查找以下行。从该行的开头删除“;”号,然后重新启动Apache。现在应该可以正常工作了!

;extension=mysql.so

应当变成什么?

extension=mysql.so

对于Windows,它将是:

;extension=mysql.dll

应该变成什么?

extension=mysql.dll

1
从最新的PHP 7.3版本开始... 注意:以前PHP版本中使用的语法('extension=<ext>.so'和'extension='php_<ext>.dll')由于遗留原因而得到支持,但在未来的PHP主要版本中可能会被弃用。因此,请尽可能地转移到新的('extension=<ext>')语法。 - Jaider

3

一些Linux发行版提供了安装php_mysqlphp_mysqli的软件包。


3

在Ubuntu上安装bzip2zip PHP扩展解决了我的问题:

sudo apt-get install php7.0-bz2
sudo apt-get install php7.0-zip

使用php(您的版本)-(扩展名)安装并启用phpmyadmin自述文件中所需的任何缺失模块。

我是新手。我必须从哪个文件夹运行sudo apt-get install php7.0-bz2 - Screwtape007

2

就像其他人所说的,你需要从以下代码中删除';':
;extension=php_mysql.dll
;extension=php_mysqli.dll

在你的php.ini文件中启用mysql和mysqli扩展。但最为重要的是,你应该将php.ini文件中的extension_dir设置为指向你的扩展目录。大多数情况下默认目录是"ext"。你需要将它更改为扩展文件夹的绝对路径。例如,如果你将xampp安装在C盘,那么C:/xampp/php/ext就是到ext文件夹的绝对路径,并且它应该能够完美工作!


2
我刚刚添加了。
apt-get install php5-mysqlnd

这将要求覆盖"php5-mysql"中的mysql.so文件。

这对我有用。


2

在加载mysql dll时,您需要在php ini中放置完整路径,例如:

extension=c:/php54/ext/php_mbstring.dll
extension=c:/php54/ext/php_mysql.dll

然后您就不需要将它们移动到Windows文件夹中。


如果你没有设置 "extension_dir",那么你只需要为每个扩展添加路径即可。设置 "extension_dir" 比为每个扩展添加路径要简单得多。例如:extension_dir = "c:/php/ext"。 - ironarm

2

在我的情况下,我需要安装这个扩展:

yum install php php-mysql httpd

然后重新启动Apache:

service httpd restart

问题得到解决。


1

您的安装缺少一些php模块,在phpmyadmin自述文件中应该有所需模块的列表。如果您最近启用了这些模块,请尝试重新启动apache服务/守护程序。

编辑:似乎文档中没有单独的“启用这些模块”,因此请在php.ini中启用mysqlmysqli(您可能需要先安装它)。

如果您不打算在phpMyAdmin中上传或下载压缩文件,则这两条消息并不重要。如果您打算这样做,请启用zlib和/或bz2模块。


1
我遇到了类似的问题,但在我的php.ini中添加extension=mysql.so并没有帮助。事实证明,mysql.so文件既不在我的扩展文件夹中,也不在我的机器上的任何其他地方。通过下载php源代码并手动构建扩展,然后将其复制到扩展文件夹中解决了这个问题。

0

请检查您的php.ini文件,在该文件中分号(;)用于注释,如果您看到了分号,请将其删除。

;extension=mysql.dll

现在你的扩展已经启用,但是你需要重新启动Apache。

extension=mysql.dll

1
非常感谢大家,但我还需要做一件事情,那就是将libmysql.dll文件移动到Windows System32文件夹中,正如PHP手册中所描述的那样。将其添加到Windows PATH中也应该可行,但总的来说这种方法对我不起作用。 - Carpet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接