Perintah SQL untuk menampilkan riwayat kueri


Jawaban:


161

mencoba

 cat ~/.mysql_history

ini akan menunjukkan kepada Anda semua perintah mysql yang dijalankan pada sistem


2
yah tidak semua , penekanan terjadi untuk beberapa yang mengandung string seperti "password".
mckenzm

1
Biasanya juga tidak up-to-date dengan MySQL CLI Anda yang terbuka sehingga Anda mungkin harus menggunakan exitMySQL kemudian membaca file tersebut.
Joel Mellon

1
Ini hanya menampilkan perintah yang dijalankan oleh pengguna yang login.
Christia

1
Bagaimana melakukan ini di jendela
ßiansor Å. Ålmerol

Apakah ada kemungkinan bahwa perintah lain ditekan atau tidak berurutan? Dan, apakah log memperbarui dirinya sendiri dalam waktu nyata?
Drubio

32

Untuk MySQL> 5.1.11 atau MariaDB

  1. SET GLOBAL log_output = 'TABLE';
  2. SET GLOBAL general_log = 'ON';
  3. Lihat tabel mysql.general_log

Jika Anda ingin menampilkan file log:

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

Seperti disebutkan oleh jeffmjack dalam komentar, pengaturan ini akan dilupakan sebelum sesi berikutnya kecuali Anda mengedit file konfigurasi (mis. /etc/mysql/my.cnf , kemudian restart untuk menerapkan perubahan).

Sekarang, jika Anda mau, Anda bisa tail -f /var/log/mysql/mysql.log

Info lebih lanjut di sini: Variabel Sistem Server


3
Hanya beberapa klarifikasi di atas: Perintah salin-tempel di sini adalah untuk satu sesi MySQL, misalnya Anda dapat memasukkannya dari baris perintah MySQL interaktif. Jika Anda ingin ini menjadi fitur permanen pada instance MySQL Anda, Anda perlu meletakkan perintah tersebut di /etc/mysql/my.cnf dan memulai ulang layanan MySQL.
jeffmjack

Perhatikan juga bahwa logging akan berhenti jika /path/to/your/logfile.logdihapus, sampai Anda mengeksekusi SET GLOBAL general_log_file = "/path/to/your/logfile.log";lagi (atau mungkin memulai ulang sesi jika Anda mengedit konfigurasi?).
Skippy le Grand Gourou

21

(Linux) Buka Terminal Anda, ctrl+alt+t jalankan perintah

 cat ~/.mysql_history

Anda akan mendapatkan semua riwayat kueri mysql sebelumnya nikmati :)


18

Anda akan menemukannya di sana

~/.mysql_history

Anda akan membuatnya dapat dibaca (tanpa pelarian) seperti ini:

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

2

Lihat di ~/.myslgui/query-browser/history.xml sini Anda dapat menemukan kueri terakhir yang dibuat dengan mysql_query_browser (beberapa hari yang lalu)


0

Anda dapat melihat riwayat dari ~ / .mysql_history. Namun konten file dikodekan oleh wctomb. Untuk melihat konten:

shell> cat ~ / .mysql_history | python2.7 -c "import sys; print (''. join ([l.decode ('unicode-escape') untuk l di sys.stdin]))"

Sumber: Periksa riwayat kueri MySQL dari baris perintah


-1

Anda dapat melihat cache kueri: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm tetapi mungkin tidak memberi Anda akses ke kueri yang sebenarnya dan akan sangat hit-and-miss jika berhasil (permainan kata-kata halus dimaksudkan)

Tetapi MySQL Query Browser kemungkinan besar memiliki daftar kueri yang dijalankannya sendiri, di luar mesin MySQL. Anda harus melakukan hal yang sama di aplikasi Anda.

Edit: lihat komentar dan m yang mengarah ke ini: Bagaimana cara menampilkan query terakhir yang dieksekusi di MySQL? terlihat terdengar.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.