Perintah SQL untuk menampilkan riwayat kueri

Jawaban:

161

mencoba

 cat ~/.mysql_history

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

Maysam Torabi
sumber
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

GTodorov
sumber
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 :)

Vamsidhar Muggulla
sumber
18

Anda akan menemukannya di sana

~/.mysql_history

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

sed "s/\\\040/ /g" < .mysql_history
DimiDak
sumber
2

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

pengguna4493696
sumber
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

GoYun.Info
sumber
-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.

Kieren Johnstone
sumber