Phpmyadmin ile geçmiş mysql sorgularını görüntülemenin bir yolu var mı?


113

Bir mysqltablodaki satırları silen bir hatayı bulmaya çalışıyorum .

Hayatım boyunca onu kodumda takip edemiyorum PHP, bu yüzden satırları kaldıran gerçek mysql sorgusunu bularak geriye doğru çalışmak istiyorum.

Phpmyadmin'de oturum açtım, ancak geçmiş sql işlemlerinin geçmişini görüntülemenin bir yolunu bulamıyorum.

Bunları phpmyadmin'de görüntülemenin bir yolu var mı?


2
Kodunuzu DELETEifadeler için arayamaz ve bu şekilde hata ayıklayamaz mısınız?
webbiedave

Baol ve webbiedave'i dinleyin. Neyin gittiğini görmek için sorgu günlüğünü etkinleştirmelisiniz, ancak yine de kodunuzda SQL ifadelerinin nereden geldiğini bulmanız gerekir. "Sil" için grepping yapmaya başlayın, projenizde bu kadar çok silme ifadesi olamaz .
joeynelson

evet, aslında silmek için uğraşarak başladım, ancak gözlerim parlatılmış olmalı, silmelerin hiçbiri sorunlu görünmüyor ... bu yüzden sorgu günlüğünün yardımcı olacağını umuyorum. yardımlarınız için ikinize de teşekkürler.
chris1979

Yanı silmeleri yapabilir veritabanınızda herhangi tetikleyiciler olup olmadığını kontrol edin
Mark Baker

Yanıtlar:


107

Tamam, bu yüzden cevaba gerçekten rastladım.

phpMyAdmin kısa bir geçmiş sunar. 'PhpMyAdmin' logosunun hemen altındaki 'sql' simgesine tıklarsanız, yeni bir pencere açılacaktır. Yeni pencerede, 'geçmiş' sekmesine tıklamanız yeterlidir.

Bu size son yirmi kadar SQL işlemini verecektir.

görüntü açıklamasını buraya girin


2
Daha fazla tasarruf etmek için phpMyadmin'i yapılandırabilirsiniz. Son 100000 sorguyu kaydetmek için kendi kurulumum var.
Mixologic

AMA ... veritabanınızı her güncellediğinizde (örneğin: önceki bir sürümü yüklediğinizde) geçmişinizi kaybedersiniz (bu nedenle geçmişini kontrol etmek için bir veritabanını yeniden yükleyemezsiniz)
JinSnow

1
İndeks değişikliklerini günlüğe kaydetmez ve bu şey için tam olarak yararlı olacaktır, çünkü onları çalıştırdığınızda da düzgün şekilde günlüğe
kaydetmez

57
Bu SQL simgesini göremiyorum, mevcut sürümde nerede?
Joseph Astrahan

3
@JosephAstrahan Query windowyanındaki simgeyi tıklayınHome
amallard

64

SQL (sorgu) ekranının altında bir Konsol sekmesi vardır . Varsayılan olarak genişletilmez, ancak üzerine tıklandığında Seçenekler, Geçmiş ve Temizle sekmelerini göstermelidir . Geçmişe tıklayın.

Sorgu geçmişi uzunluğu içinden ayarlanır Sayfa İlgili Ayarlar ekranının sağ üst tarafındaki dişli çarkı tıklayarak bulundu.

Bu, PHP 4.5.1-1 sürümü için doğrudur


6
Uzunluk artık Ana Sayfa altında | Ayarlar | SQL sorguları | Sorgu geçmişi uzunluğu . Ve çıldırtıcı bir şekilde "Değer 25'e eşit veya 25'ten küçük olmalıdır!"
Bob Stein

39

PhpMyAdmin'de ekranın altındaki konsola tıklamanız yeterlidir ve Executed geçmişini alacaksınız:

görüntü açıklamasını buraya girin


Kabul edilen cevapta sayfayı bulamadım (belki farklı bir versiyondan olabilir) ve bu benim için çalıştı, teşekkürler.
felwithe

4
Bu, yalnızca kullanıcının phpmyadminkendisi tarafından çalıştırılan Sorguları gösterir . Gerçekleştirilen tüm sorguların tam kayıtlarını göstermez.
Fusion

12

Geçmiş sorguları görüntülemek için bu sorguyu phpMyAdmin'de çalıştırın.

SELECT * FROM `general_log`

etkin değilse, çalıştırmadan önce aşağıdaki iki sorguyu çalıştırın.

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

7
çok faydalı teşekkürler. başka birine SELECT * FROM general_logmysql tablosunda sorgulanmalıdır, aksi takdirde tablename: SELECT * FROM mysql. general_log
siggi_pop

9

PhpMyAdmin'in bunu yapmanıza izin verdiğini sanmıyorum, ama yanıldığımı duymak isterim.

Öte yandan, MySQL'de sorgu günlüğünü etkinleştirebilirsiniz: Genel Sorgu Günlüğü



7

PhpMyAdmin Sunucusu sürümünü kullanıyorum: 5.1.41.

Sql geçmişini phpmyadmin.pma_historytablo üzerinden görüntüleme imkanı sunar .

Sorgunuzu bu tablodan arayabilirsiniz.

pma_history Tablo aşağıdaki yapıya sahiptir:

görüntü açıklamasını buraya girin


3

PhpMyAdmin logosunun hemen altındaki sorgu penceresine tıklamalısınız, yeni bir pencere açılacaktır. SQL Geçmişi sekmesine tıklamanız yeterlidir. Orada SQL Sorgularının geçmişini görebilirsiniz.


2

Yanılıyor olabilirim, ancak phpmyadmin oturumları için oturum dosyasında önceki SQL sorgularının bir listesini gördüğüme inanıyorum


Özür dilerim ... Sorunuzu yanlış anladım: oturumdaki liste phpmyadmin tarafından yayınlanan önceki ifadelerin listesidir, bu nedenle kendi PHP komut dosyalarınız tarafından yayınlanan herhangi bir SQL ifadesi içermiyor, bu yüzden muhtemelen o kadar yararlı değil.
Mark Baker

1

Tamam, bu yüzden biraz geciktiğimi biliyorum ve yukarıdaki cevaplardan bazıları harika şeyler.

Ancak herhangi bir PHPMyAdmin sayfasındayken biraz daha fazla:

  1. SQL sekmesine tıklayın
  2. "Otomatik kaydedilen sorguyu al" ı tıklayın

bu daha sonra girdiğiniz son sorguyu gösterecektir.


0

geçmiş mysql dosyanızı /PATH_PAST_MYSQL/bin/mysqld.exe ile çalıştırabilirsiniz.

son mysql'inizi çalıştırır ve onu phpmyadmin'de ve sisteminizin diğer bölümünde görebilirsiniz.

not: mevcut mysql sürümünüzü durdurun.

SF My English.


0

neden dışa aktarmayı kullanmıyorsunuz, ardından 'Özel - tüm olası seçenekleri görüntüle' radyo düğmesini tıklayın, ardından veritabanınızı seçin, ardından Çıktı'ya gidin ve 'Çıkışı metin olarak görüntüle'yi seçin, sadece aşağı kaydırın ve Git. Voila!


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.