phpmyadminで過去のmysqlクエリを表示する方法はありますか?


111

mysqlテーブルの行を削除するバグを追跡しようとしています。

私の人生では、PHPコードでそれを追跡することはできません。そのため、行を削除している実際のmysqlクエリを見つけて、逆方向に作業したいと思います。

phpmyadminにログインしましたが、過去のSQL操作の履歴を表示する方法が見つかりません。

phpmyadminでそれらを表示する方法はありますか?


2
コードでDELETEステートメントを検索し、その方法でデバッグすることはできませんか?
webbiedave 2010

baolとwebbiedaveを聞いてください。クエリログを有効にして何が起こっているかを確認する必要がありますが、それでもSQLステートメントがコードのどこから来ているのかを見つける必要があります。「削除」のためにgrepを起動し、そこにすることができないという、プロジェクト内の多くのDELETE文。
joeynelson 2010

ええ、私は実際には削除のためのgreppingから始めましたが、私の目はb / cを介して光沢を失っている必要があります削除のどれも問題のないようです... 助けてくれてありがとう。
chris1979

削除を実行する可能性があるデータベース内のトリガーを確認します
Mark Ba​​ker

回答:


107

わかりましたので、私は実際に答えを偶然見つけました。

phpMyAdminは簡単な履歴を提供します。「phpMyAdmin」ロゴのすぐ下にある「sql」アイコンをクリックすると、新しいウィンドウが開きます。新しいウィンドウで、「履歴」タブをクリックするだけです。

これで、最後の20個程度のSQL操作が得られます。

ここに画像の説明を入力してください


2
phpMyadminを構成してさらに節約できます。私は私の最後の100000クエリを保存するように設定しています。
Mixologic 14

しかし...データベースを更新する(たとえば、前のバージョンをロードする)たびに、履歴が失われます(そのため、データベースを再インストールして履歴を確認することはできません)
JinSnow

1
インデックスの変更はログに記録されません

56
このSQLアイコンが表示されません。現在のバージョンのどこにありますか?
ジョセフアストラハン

3
@JosephAstrahanのQuery window横にあるアイコンをクリックHome
amallard

63

SQL(クエリ)画面の下部に[ コンソール ]タブがあります。デフォルトでは展開されていませんが、クリックすると、[オプション]、[ 履歴]、[クリア]のタブが表示されます。履歴をクリックします。

クエリ履歴の長さは内から設定されているページ関連設定画面の右上にある歯車をクリックして発見しました。

これは、PHPバージョン4.5.1-1に適しています。


6
長さがホームの下になりました| 設定| SQLクエリ| クエリ履歴の長さ。そして、気まずいことに「値は25以下でなければなりません!」
Bob Stein

37

phpMyAdminの画面下部にあるコンソールをクリックするだけで、実行履歴が表示されます。

ここに画像の説明を入力してください


受け入れられた回答でページを見つけることができませんでした(おそらく別のバージョンのものである可能性があります)。これでうまくいきました。
felwithe 2018

4
これは、ユーザーphpmyadmin自身が実行したクエリのみを表示します。実行されたすべてのクエリの完全なレコードは表示されません。
Fusion

11

過去のクエリを表示するには、phpMyAdminでこのクエリを実行します。

SELECT * FROM `general_log`

有効になっていない場合は、実行する前に次の2つのクエリを実行してください。

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

6
とても役に立ちます。他の誰かにSELECT * FROM general_logをmysqlテーブル内でクエリする必要があります。そうでなければ、テーブル名を含める必要があります:SELECT * FROM mysql。general_log
siggi_pop 2017

9

phpMyAdminでそれができるとは思いませんが、私が間違っていると聞きたいのですが。

一方、MySQLでクエリログを有効にすることができます:一般クエリログ



5

phpMyAdminサーバーのバージョン:5.1.41を使用しています。

phpmyadmin.pma_historyテーブルを介してSQL履歴を表示する可能性があります。

このテーブルでクエリを検索できます。

pma_history テーブルの構造は以下のとおりです。

ここに画像の説明を入力してください


3

phpMyAdminロゴのすぐ下にあるクエリウィンドウをクリックする必要があります。新しいウィンドウが開きます。[SQL履歴]タブをクリックするだけです。そこではSQLクエリの履歴を見ることができます。


2

私は間違っているかもしれませんが、phpmyadminセッションのセッションファイルに以前のSQLクエリのリストを見たことがあると思います


謝罪...私はあなたの質問を誤解します:セッションのリストはphpmyadminを介して発行された以前のステートメントのリストであるため、独自のPHPスクリプトによって発行されたSQLステートメントは含まれていません。
Mark Ba​​ker

1

わかりましたので、私は少し遅れていることを知っています。上記の回答のいくつかは素晴らしいものです。

ただし、PHPMyAdminページでは次のようになります。

  1. [SQL]タブをクリックします
  2. 「自動保存クエリを取得」をクリックします

これにより、最後に入力したクエリが表示されます。


0

/PATH_PAST_MYSQL/bin/mysqld.exeを実行して、過去のmysqlを実行できます。

それは最後のmysqlを実行し、phpmyadminおよびシステムの他のセクションで確認できます。

注意:現在のmysqlバージョンを停止します。

SF私の英語。


0

エクスポートを使用しないのはなぜですか。次に、[カスタム-可能なすべてのオプションを表示する]ラジオボタンをクリックし、データベースを選択して、[出力]に移動し、[テキストとして出力を表示]を選択します。スクロールして移動します。出来上がり!


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.