【问题标题】:Is there a way to view past mysql queries with phpmyadmin?有没有办法用 phpmyadmin 查看过去的 mysql 查询?
【发布时间】:2011-03-15 21:41:16
【问题描述】:

我正在尝试查找删除 mysql 表中的行的错误。

对于我的生活,我无法在我的PHP 代码中找到它,所以我想通过找到删除行的实际 mysql 查询来向后工作。

我登录了phpmyadmin,但是找不到查看过去sql操作历史的方法。

有没有办法在 phpmyadmin 中查看它们?

【问题讨论】:

  • 您不能在代码中搜索DELETE 语句并以这种方式进行调试吗?
  • 听 baol 和 webbiedave。您应该启用查询日志以查看发生了什么,但是您仍然必须在代码中找到 SQL 语句的来源。开始寻找“删除”,您的项目中不能有 那么多 个删除语句。
  • 是的,我实际上是从 grepping for delete 开始的,但我的眼睛必须掩饰在 b/c 上,没有一个删除似乎有问题……这就是为什么我希望查询日志会有所帮助。感谢你们的帮助。
  • 检查数据库中是否有任何触发器也可能进行删除

标签: mysql phpmyadmin


【解决方案1】:

我认为 phpMyAdmin 不允许您这样做,但我想知道我错了。

另一方面,您可以在 MySQL 中启用查询日志记录:The General Query Log

【讨论】:

    【解决方案2】:

    我可能是错的,但我相信我已经在 phpmyadmin 会话的会话文件中看到了以前的 SQL 查询列表

    【讨论】:

    • 道歉...我误读了您的问题:会话中的列表是通过phpmyadmin发出的先前语句的列表,因此它不包含您自己的PHP脚本发出的任何SQL语句,所以可能没那么有用。
    【解决方案3】:

    好的,所以我实际上偶然发现了答案。

    phpMyAdmin 确实提供了简短的历史。如果您单击“phpMyAdmin”徽标下方的“sql”图标,它将打开一个新窗口。在新窗口中,只需点击“历史”标签即可。

    这将为您提供最后二十个左右的 SQL 操作。

    【讨论】:

    • 你可以配置phpMyadmin来保存更多。我有我的设置来保存最后 100000 个查询。
    • 但是...每次更新(例如:加载以前的版本)数据库时,您的历史记录都会丢失(因此您无法重新安装数据库来检查它的历史记录)
    • 不记录索引更改,它对那个东西非常有用,因为当你执行它们时它也没有正确记录它们……
    • 我没有看到这个SQL图标,在当前版本中它在哪里?
    • @JosephAstrahan 点击Home 旁边的Query window 图标
    【解决方案4】:

    是的,您可以将查询记录到一个特殊的 phpMyAdmin 数据库表中。

    SQL_history

    【讨论】:

    • 这补充了@Dhinakar 上面给出的答案。
    【解决方案5】:

    我正在使用 phpMyAdmin 服务器版本:5.1.41。

    它提供了通过phpmyadmin.pma_history表查看sql历史的可能性。

    您可以在此表中搜索您的查询。

    pma_history 表结构如下:

    【讨论】:

      【解决方案6】:

      您必须单击 phpMyAdmin 徽标下方的查询窗口,将打开一个新窗口。 只需单击 SQL 历史记录选项卡。在那里您可以看到 SQL 查询的历史记录。

      【讨论】:

        【解决方案7】:

        有一个名为 Adminer 的工具,它能够完成打包在单个小 php 文件中的所有 phpmyadmin 工作。 http://www.techinfobit.com/how-to-import-export-database-without-any-extra-installation/

        【讨论】:

          【解决方案8】:

          SQL(查询)屏幕底部有一个控制台标签。默认情况下它不会展开,但一旦点击它应该会显示选项、历史和清除选项卡。点击历史。

          查询历史长度是在页面相关设置中设置的,通过点击屏幕右上角的齿轮找到。

          这对于 PHP 4.5.1-1 版是正确的

          【讨论】:

          • 长度现在在首页 |设置 | SQL 查询 |查询历史长度。并且令人抓狂的是“值必须等于或小于 25!”
          • 太棒了。我一直想要这个,假设不可能,因为“获取自动保存的查询”做了一些不同的事情。
          【解决方案9】:

          要查看过去的查询,只需在 phpMyAdmin 中运行此查询。

          SELECT * FROM `general_log`
          

          如果未启用,请在运行前运行以下两个查询。

          SET GLOBAL log_output = 'TABLE';
          SET GLOBAL general_log = 'ON';
          

          【讨论】:

          • 非常有用,谢谢。其他任何人 SELECT * FROM general_log 必须在 mysql 表中查询,否则您必须包含表名:SELECT * FROM mysql.general_log
          【解决方案10】:

          好的,我知道我来晚了,上面的一些答案很棒。

          不过,在任何 PHPMyAdmin 页面中都需要一点额外的东西:

          1. 单击 SQL 选项卡
          2. 点击“获取自动保存的查询”

          这将显示您最后输入的查询。

          【讨论】:

            【解决方案11】:

            您只需在 phpMyAdmin 中单击屏幕底部的控制台,您将获得执行历史记录:

            【讨论】:

            • 我无法在接受的答案中找到该页面(可能来自不同的版本),这对我有用,谢谢。
            • 这仅显示用户从phpmyadmin 本身运行的查询。它不会显示所有已执行查询的完整记录。
            【解决方案12】:

            您可以使用 run /PATH_PAST_MYSQL/bin/mysqld.exe 运行您过去的 mysql

            它运行你最后一个 mysql,你可以在 phpmyadmin 和系统的其他部分看到它。

            注意:停止您当前的 mysql 版本。

            S F 我的英语。

            【讨论】:

              【解决方案13】:

              为什么不使用导出,然后单击“自定义 - 显示所有可能的选项”单选按钮,然后选择您的数据库,然后转到“输出”并选择“以文本形式查看输出”,向下滚动并开始。瞧!

              【讨论】:

                【解决方案14】:

                这是一些可能有用的技巧:

                对于选择查询(仅限),您可以创建视图,尤其是在您发现自己一遍又一遍地运行相同的选择查询时,例如在生产支持场景中。

                创建视图的主要优点是:

                • 它们常驻在数据库中,因此是永久的
                • 它们可以在会话和用户之间共享
                • 它们提供了使用表格的所有常见好处
                • 可以进一步查询它们,就像表格一样,例如进一步过滤结果
                • 由于它们在后台存储为查询,因此不会增加任何开销。

                您只需单击结果表显示底部的“创建视图”链接即可轻松创建视图。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2018-06-02
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-10-17
                  • 1970-01-01
                  相关资源
                  最近更新 更多