Sorgu geçmişini görüntülemek için SQL komutu


Yanıtlar:


161

Deneyin

 cat ~/.mysql_history

bu size sistemde çalıştırılan tüm mysql komutlarını gösterecektir


2
hepsi değil , "şifre" gibi dizeler içeren bazılarında gizleme yapılır.
mckenzm

1
Ayrıca, açık MySQL CLI'nizle genellikle güncel değildir, bu nedenle muhtemelen MySQL yapmanız ve exitardından dosyayı okumanız gerekir.
Joel Mellon

1
Bu yalnızca oturum açan kullanıcı tarafından yürütülen komutları gösterir.
Christia


Diğer komutların bastırılması veya sıralanmamış olma ihtimali var mı? Ve günlük kendini gerçek zamanlı olarak güncelliyor mu?
Drubio

32

MySQL> 5.1.11 veya MariaDB için

  1. SET GLOBAL log_output = 'TABLE';
  2. SET GLOBAL general_log = 'ON';
  3. Masaya bir bak mysql.general_log

Bir günlük dosyasına çıktı vermek istiyorsanız:

  1. SET GLOBAL log_output = "FILE";
  2. SET GLOBAL general_log_file = "/path/to/your/logfile.log"
  3. SET GLOBAL general_log = 'ON';

Jeffmjack tarafından yorumlarda belirtildiği gibi, konfigürasyon dosyalarını düzenlemediğiniz sürece bu ayarlar bir sonraki oturumdan önce unutulacaktır (örneğin /etc/mysql/my.cnf, değişiklikleri uygulamak için düzenleyin , ardından yeniden başlatın).

Şimdi, eğer istersen yapabilirsin tail -f /var/log/mysql/mysql.log

Daha fazla bilgi burada: Sunucu Sistem Değişkenleri


3
Yukarıdakilere biraz açıklama getirelim: Buradaki kopyala-yapıştır komutları tek bir MySQL oturumu içindir, örneğin bunları etkileşimli MySQL komut satırından girebilirsiniz. Bunların MySQL örneğinizin kalıcı bir özelliği olmasını istiyorsanız, bu komutları /etc/mysql/my.cnf içine koymanız ve MySQL hizmetini yeniden başlatmanız gerekir.
jeffmjack

Ayrıca /path/to/your/logfile.log, siz SET GLOBAL general_log_file = "/path/to/your/logfile.log";tekrar çalıştırana kadar (veya yapılandırmayı düzenlediyseniz belki oturumu yeniden başlattınız mı?) Kadar, silinirse günlük tutmanın duracağını unutmayın .
Skippy le Grand Gourou

21

(Linux) Terminalinizi açın ctrl+alt+t , komutu çalıştırın

 cat ~/.mysql_history

önceki tüm mysql sorgu geçmişini alacaksınız :)


19

Orada bulacaksın

~/.mysql_history

Bunu şu şekilde (kaçışlar olmadan) okunabilir hale getireceksiniz:

sed "s/\\\040/ /g" < .mysql_history

2

~/.myslgui/query-browser/history.xml Buraya bakın, ile yapılan son sorguları bulabilirsiniz mysql_query_browser (birkaç gün önce)



-1

Sorgu önbelleğine bakabilirsiniz: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm, ancak gerçek sorgulara erişim sağlamayabilir ve çok işe yaradıysa vur ve kaçır (ince kelime oyunu)

Ancak MySQL Sorgu Tarayıcısı, muhtemelen MySQL motorunun dışında çalıştırdığı kendi sorgu listesini tutmaktadır. Aynı şeyi uygulamanızda yapmanız gerekir.

Düzenleme: Dan m'nin buna yol açan yorumuna bakın: MySQL'de yürütülen son sorgular nasıl gösterilir? ses görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.