【问题标题】:phpMyAdmin - The MySQL Extension is MissingphpMyAdmin - 缺少 MySQL 扩展
【发布时间】:2012-01-03 17:48:38
【问题描述】:

我分别安装了所有东西(Apache、PHP、MySQL 和 phpMyAdmin)并且不使用编译,到目前为止一切正常,除了 phpMyAdmin。

我遇到的问题是,当我尝试调用时,错误消息指出“缺少 MySQL 扩展”:

localhost/phpmyadmin/index.php

当我打电话时

localhost/phpmyadmin/setup/index.php

我有两条消息我不知道它是否应该是这样的:

Bzip2 压缩解压需要函数(bzopen, bzcompress) 在此系统上不可用。

和:

Zip解压需要函数(zip_open),这些函数不可用 在这个系统上。

有什么建议吗?

【问题讨论】:

  • 如果你用 在里面,mysql 扩展是否加载在那里?如果没有,你需要在你的 php.ini 中激活它

标签: php mysql phpmyadmin


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    使用php(you version)-(extension) 安装和启用 phpmyadmin 自述文件中所需的任何缺失模块。

    【讨论】:

    • 我是新手。我必须从哪个文件夹运行sudo apt-get install php7.0-bz2
    【解决方案3】:

    我只是添加

    apt-get install php5-mysqlnd
    

    这将要求从“php5-mysql”覆盖mysql.so。

    这对我有用。

    【讨论】:

      【解决方案4】:

      正如其他人所说,您需要从
      ;extension=php_mysql.dll
      ;extension=php_mysqli.dll

      中删除“;

      在您的 php.ini 中启用 mysql 和 mysqli 扩展。但是最重要的是,你应该在你的 php.ini 中设置extension_dir 指向你的扩展目录。大多数时候默认是“ext”。您应该将其更改为扩展文件夹的 absolute 路径。即,如果您将 xampp 安装在驱动器 C 上,则 C:/xampp/php/ext 是 ext 文件夹的绝对路径,它应该像魅力一样工作!

      【讨论】:

        【解决方案5】:

        就我而言,我必须安装扩展:

        yum install php php-mysql httpd
        

        然后重启apache:

        service httpd restart
        

        这解决了问题。

        【讨论】:

          【解决方案6】:

          加载mysql dll时需要将完整路径放入php ini中,即:-

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

          那么你就不需要将它们移动到windows文件夹中了。

          【讨论】:

          • 如果你没有设置“extension_dir”,你只需要为每个扩展添加路径。设置“extension_dir”比为每个扩展添加路径要容易得多。例如:extension_dir = "c:/php/ext"
          【解决方案7】:

          只需检查您的 php.ini 文件,在此文件中分号(;)用于注释 如果你看到然后删除分号;。

          ;extension=mysql.dll
          

          现在您的扩展程序已启用,但您需要重新启动 appache

          extension=mysql.dll
          

          【讨论】:

          • 非常感谢大家,但我还需要做一件事,即按照 PHP 手册中的说明将 libmysql.dll 移动到 Windows System32 文件夹 - 将其添加到 Windows PATH应该也可以工作,但一般来说,那个对我不起作用。
          【解决方案8】:

          一些 linux 发行版需要安装 php_mysqlphp_mysqli 软件包。

          【讨论】:

            【解决方案9】:

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

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

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

            【讨论】:

              【解决方案10】:

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

              首先,您必须找到您的 php.ini。它可以在任何地方,但如果您使用

              创建一个小的 php 文件
              <?php phpinfo(); ?>
              

              脚本它会告诉你它在哪里。只需查看加载的配置文件的路径即可。 常见位置包括 /etc/apache/、/etc/php4/apache2/php.ini、/etc/php5/apache2/php.ini 甚至 /usr/local/lib/php.ini 对于 Windows,它可能是 C:\用户\用户名\PHP\php.ini

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

              ;extension=mysql.so
              

              应该变成

              extension=mysql.so
              

              对于windows它将是

              ;extension=mysql.dll
              

              应该变成

              extension=mysql.dll
              

              【讨论】:

              • 从最新的 php 7.3... ;注意:以前的 PHP 版本中使用的语法('extension=.so' 和 ;'extension='php_.dll')由于遗留原因而受到支持,并且可能是 ;在未来的 PHP 主要版本中已弃用。所以,如果可能的话,请;移至新的 ('extension=) 语法。
              猜你喜欢
              • 2011-09-30
              • 2013-06-29
              • 2018-12-11
              • 2018-05-22
              • 2015-03-05
              • 2020-11-19
              • 2016-06-19
              • 2017-04-23
              相关资源
              最近更新 更多