【问题标题】:Cannot export table in SQL format in phpMyAdmin无法在 phpMyAdmin 中以 SQL 格式导出表
【发布时间】:2019-05-16 19:34:24
【问题描述】:

我想从 phpMyAdmin 导出我的 SQL 表,但在我的服务器中我无法选择 SQL 格式,因为它不存在。

我也无法导出整个 SQL 文件。单击 Go 后,我的浏览器显示错误。

我该如何解决这个问题?

【问题讨论】:

  • 这个问题已经回答here

标签: sql phpmyadmin


【解决方案1】:

他们现在确实有解决办法:

资源: Issue 14775 | Fix for 14775

按照以下步骤操作:

  1. 通过 SSH 连接到服务器。 (我建议先保存原始文件以防万一)
  2. 编辑文件/usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin/libraries/classes/Display/Export.php

!注意:对于 Windows,它将是 %plesk_dir%admin\htdocs\domains\databases\phpMyAdmin\libraries\classes\Display\Export.php

  1. 找到线 /* Scan for plugins */在 662 号线附近
  2. 在该行上方添加以下内容:

// Export a single table

if (isset($_GET['single_table'])) {

    $GLOBALS['single_table'] = $_GET['single_table'];

}
  1. 保存文件。

更多参考here.

【讨论】:

  • 谢谢!像魅力一样工作......也许应该使用 $_REQUEST 而不是 $_GET/$_POST
  • 太棒了。对于 Mac OS 上的 XAMPP,它位于 Applications/XAMPP/xamppfiles/phpmyadmin/libraries/classes/Display/Export.php 中。只需添加代码并刷新浏览器即可。
  • 非常感谢! Wamp64 的相同设置 - wamp64\apps\phpmyadminX.X.X\libraries\classes\Display\Export.php
【解决方案2】:

在问题解决之前,您可以尝试另一种方式:打开您要导出的表,然后一直向下查看查询结果操作。在那里你可以导出查询结果,这里有一个 SQL 选项。就我而言,这可以正常工作。

【讨论】:

    【解决方案3】:

    如果是phpMyAdmin 4.8.4,那么你可能遇到过这个问题:https://github.com/phpmyadmin/phpmyadmin/issues/14775

    它应该会在接下来的几天内修复,下一次更新 - 同时,您可以尝试使用旧版本的 phpMyAdmin 进行导出或 mysqldump(或其他一些导出 DB\table 的方法)。

    【讨论】:

    • 谢谢,是的,它是 phpmyadmin 4.8.4 我如何降级这个版本?
    • 取决于它的安装方式 - 使用包管理器(例如,在 Debian\Ubuntu 上使用“apt-get”等)或手动安装。如果它是手动安装的,您可以从github.com/phpmyadmin/phpmyadmin/releasesphpmyadmin.net/files 获取旧版本 - 然后使用类似于升级的过程(用旧版本的文件替换当前的 phpmyadmin 并移动配置)。否则 - 这取决于您的发行版。但我建议等到错误修复后再使用 mysqldump 进行导出,而不是降级 - 如果您有对服务器的 shell 访问权限。
    【解决方案4】:
    1. Go to C:\wamp\apps\phpmyadmin(YOUR_PHP_VERSION)\libraries\classes\Display
    2. open Export.php
    3. look for line /* Scan for plugins */ (near 662)
    4. check if following lines are set or not
    
    if (isset($_POST['single_table'])) {
    $GLOBALS['single_table'] = $_POST['single_table'];
    }
    if (isset($_GET['single_table'])) {
    $GLOBALS['single_table'] = $_GET['single_table'];
    }
    

    【讨论】:

      【解决方案5】:

      这是一个错误。 您可以简单地在第一个选项卡上选择所有数据,然后单击右下角的导出按钮。 sql 选项将被默认。

      like this

      【讨论】:

        【解决方案6】:

        另一种导出方式是使用 CLI:

        mysqldump -u your_user -p your_database table1 table2 ... > database_tables.sql
        

        【讨论】:

        • 感谢您的解决方法。我猜大多数使用 phpmyadmin 的人都厌恶 CLI 或无权访问它。
        • 是的,你是对的,所以,我认为这是一个临时解决方案,同时更新了。
        【解决方案7】:

        在xampp文件Export.php:

        /opt/lampp/phpmyadmin/libraries/classes/Display
        

        【讨论】:

          【解决方案8】:

          脚本中存在代码,只需将 POST 更改为 REQUEST 方法

          if (isset($_REQUEST['single_table'])) {
          $GLOBALS['single_table'] = $_REQUEST['single_table'];
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-03-26
            • 2012-05-30
            • 2019-12-31
            • 1970-01-01
            • 2011-02-13
            • 1970-01-01
            • 2019-05-27
            相关资源
            最近更新 更多