Apakah ada cara untuk melihat pertanyaan mysql sebelumnya dengan phpmyadmin?

112

Saya mencoba melacak bug yang menghapus baris dalam mysqltabel.

Untuk kehidupan saya, saya tidak dapat melacaknya dalam PHPkode saya , jadi saya ingin bekerja mundur dengan menemukan kueri mysql sebenarnya yang menghapus baris.

Saya masuk ke phpmyadmin, tetapi tidak dapat menemukan cara untuk melihat riwayat operasi sql sebelumnya.

Apakah ada cara untuk melihatnya di phpmyadmin?

Chris1979
sumber
2
Tidak dapatkah Anda mencari kode Anda untuk DELETEpernyataan dan debug seperti itu?
webbiedave
Dengarkan baol dan webbiedave. Anda harus mengaktifkan pencatatan kueri untuk melihat apa yang terjadi, tetapi kemudian Anda masih harus menemukan dari mana pernyataan SQL tersebut berasal dalam kode Anda. Mulai grepping untuk "menghapus", tidak mungkin ada yang banyak pernyataan delete dalam proyek Anda.
joeynelson
ya, saya sebenarnya mulai dengan grepping untuk menghapus, tetapi mata saya harus tertutup b / c tidak ada penghapusan yang tampak bermasalah ... itulah sebabnya saya berharap log kueri akan membantu. terima kasih untuk bantuan kalian berdua.
chris1979
Periksa pemicu apa pun dalam database Anda yang mungkin juga melakukan penghapusan
Mark Baker

Jawaban:

108

Oke, jadi saya benar-benar menemukan jawabannya.

phpMyAdmin memang menawarkan sejarah singkat. Jika Anda mengklik ikon 'sql' tepat di bawah logo 'phpMyAdmin', jendela baru akan terbuka. Di jendela baru, cukup klik tab 'riwayat'.

Itu akan memberi Anda dua puluh operasi SQL terakhir.

masukkan deskripsi gambar di sini

Chris1979
sumber
2
Anda dapat mengkonfigurasi phpMyadmin untuk menghemat lebih banyak. Saya memiliki pengaturan saya untuk menyimpan 100000 kueri terakhir.
Mixologic
TAPI ... setiap kali Anda memperbarui (misalnya: memuat versi sebelumnya) database Anda, Anda kehilangan riwayat (jadi Anda tidak dapat menginstal ulang database untuk memeriksa riwayatnya)
JinSnow
1
Tidak mencatat perubahan indeks, dan itu akan berguna untuk hal itu, karena ia tidak mencatatnya dengan benar saat Anda mengeksekusinya juga…
o0 '.
56
Saya tidak melihat ikon SQL ini, di manakah di versi saat ini?
Joseph Astrahan
3
@JosephAstrahan klik Query windowikon di sebelahHome
amallard
63

Ada tab Konsol di bagian bawah layar SQL (kueri). Secara default itu tidak diperluas, tetapi setelah diklik itu akan membuka tab untuk Opsi, Riwayat dan Hapus. Klik pada sejarah.

The panjang sejarah Query diatur dari dalam Halaman Pengaturan Terkait yang ditemukan dengan mengklik pada roda gigi di bagian atas kanan layar.

Ini benar untuk PHP versi 4.5.1-1

gangster
sumber
6
Panjangnya sekarang di bawah Beranda | Pengaturan | Kueri SQL | Panjang riwayat kueri . Dan dengan menjengkelkan, "Nilai harus sama atau lebih rendah dari 25!"
Bob Stein
38

Anda hanya perlu mengklik konsol di bagian bawah layar di phpMyAdmin dan Anda akan mendapatkan riwayat Eksekusi:

masukkan deskripsi gambar di sini

Samarth Saxena
sumber
Saya tidak dapat menemukan halaman dalam jawaban yang diterima (mungkin dari versi yang berbeda), dan ini berhasil untuk saya, terima kasih.
felwithe
4
Ini hanya menunjukkan Kueri yang dijalankan oleh pengguna dari phpmyadmindirinya sendiri. Itu tidak menunjukkan catatan lengkap dari semua kueri yang dilakukan.
Fusion
12

Untuk melihat kueri sebelumnya, cukup jalankan kueri ini di phpMyAdmin.

SELECT * FROM `general_log`

jika tidak diaktifkan, jalankan dua kueri berikut sebelum menjalankannya.

SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
Waqas Bukhary
sumber
7
sangat berguna terima kasih. kepada orang lain SELECT * FROM general_logharus di-query di dalam tabel mysql yang lain, Anda harus memasukkan nama tab: SELECT * FROM mysql. general_log
siggi_pop
9

Saya tidak berpikir phpMyAdmin memungkinkan Anda melakukan itu, tetapi saya ingin mendengar bahwa saya salah.

Di sisi lain, Anda dapat mengaktifkan pencatatan kueri di MySQL: Log Kueri Umum

baol
sumber
8

Ya, Anda dapat mencatat kueri ke tabel DB phpMyAdmin khusus.

Lihat SQL_history .

kebiruan
sumber
Ini melengkapi jawaban yang diberikan di atas oleh @Dhinakar.
Meetai.com
7

Saya menggunakan versi Server phpMyAdmin: 5.1.41.

Ini menawarkan kemungkinan untuk melihat sejarah sql melalui phpmyadmin.pma_historytabel.

Anda dapat mencari kueri Anda di tabel ini.

pma_history tabel memiliki struktur di bawah ini:

masukkan deskripsi gambar di sini

Dhinakar
sumber
3

Anda harus mengklik jendela kueri tepat di bawah logo phpMyAdmin, jendela baru akan terbuka. Cukup klik pada tab SQL History. Di sana Anda dapat melihat riwayat SQL Queries.

Anurag Prashant
sumber
2

Saya mungkin salah, tetapi saya yakin saya telah melihat daftar kueri SQL sebelumnya di file sesi untuk sesi phpmyadmin

Mark Baker
sumber
Maaf ... Saya salah membaca pertanyaan Anda: daftar dalam sesi adalah daftar pernyataan sebelumnya yang dikeluarkan melalui phpmyadmin, jadi tidak berisi pernyataan SQL yang dikeluarkan oleh skrip PHP Anda sendiri, jadi mungkin tidak terlalu membantu.
Mark Baker
1

Oke, jadi saya tahu saya sedikit terlambat dan beberapa jawaban di atas adalah hal yang bagus.

Sebagai sedikit tambahan, saat berada di halaman PHPMyAdmin:

  1. Klik tab SQL
  2. Klik 'Dapatkan kueri yang disimpan otomatis'

ini kemudian akan menampilkan kueri yang terakhir Anda masukkan.

Jackherer
sumber
0

Anda dapat menjalankan mysql lama Anda dengan run /PATH_PAST_MYSQL/bin/mysqld.exe

itu menjalankan mysql terakhir Anda dan Anda dapat melihatnya di phpmyadmin dan bagian lain dari sistem Anda.

pemberitahuan: hentikan versi mysql Anda saat ini.

SF Bahasa Inggris Saya.

Omid Ahmadyani
sumber
0

mengapa Anda tidak menggunakan ekspor, lalu klik tombol radio 'Kustom - tampilkan semua opsi yang mungkin', lalu pilih database Anda, lalu masuk ke Output dan pilih 'Lihat output sebagai teks' cukup gulir ke bawah dan Buka. Voila!

Nama tampilan
sumber