มีวิธีดูแบบสอบถาม mysql ที่ผ่านมาด้วย phpmyadmin หรือไม่?


113

ฉันกำลังพยายามติดตามจุดบกพร่องที่ลบแถวในmysqlตาราง

สำหรับชีวิตของฉันฉันไม่สามารถติดตามมันลงในPHPโค้ดของฉันได้ดังนั้นฉันจึงต้องการทำงานย้อนหลังโดยการค้นหาคำค้นหา mysql จริงที่ลบแถวออก

ฉันเข้าสู่ระบบ phpmyadmin แต่ไม่พบวิธีดูประวัติการทำงานของ sql ที่ผ่านมา

มีวิธีดูใน phpmyadmin หรือไม่?


2
คุณไม่สามารถค้นหารหัสของคุณสำหรับDELETEคำสั่งและแก้ไขข้อบกพร่องด้วยวิธีนั้นได้หรือ
webbiedave

ฟัง baol และ webbiedave คุณควรเปิดใช้งานการบันทึกแบบสอบถามเพื่อดูว่าเกิดอะไรขึ้น แต่คุณยังต้องค้นหาว่าคำสั่ง SQL มาจากไหนในโค้ดของคุณ เริ่ม grepping สำหรับ "ลบ" มีไม่สามารถเป็นที่งบการลบจำนวนมากในโครงการของคุณ
joeynelson

ใช่ฉันเริ่มต้นด้วยการจับเพื่อลบ แต่ดวงตาของฉันต้องถูกมองข้าม b / c ไม่มีการลบใดที่ดูเหมือนเป็นปัญหา ... ซึ่งเป็นเหตุผลว่าทำไมฉันหวังว่าบันทึกการสืบค้นจะช่วยได้ ขอบคุณทั้งสองท่านสำหรับความช่วยเหลือ
chris1979

ตรวจสอบทริกเกอร์ใด ๆ ในฐานข้อมูลของคุณที่อาจทำการลบด้วย
Mark Baker

คำตอบ:


107

ตกลงฉันก็เลยสะดุดกับคำตอบจริงๆ

phpMyAdmin มีประวัติโดยย่อ หากคุณคลิกไอคอน "sql" ใต้โลโก้ "phpMyAdmin" จะเป็นการเปิดหน้าต่างใหม่ ในหน้าต่างใหม่เพียงคลิกที่แท็บ "ประวัติ"

ซึ่งจะให้การดำเนินการ SQL ยี่สิบครั้งล่าสุดหรือมากกว่านั้น

ใส่คำอธิบายภาพที่นี่


2
คุณสามารถกำหนดค่า phpMyadmin เพื่อประหยัดได้มากขึ้น ฉันมีการตั้งค่าของฉันเพื่อบันทึก 100000 แบบสอบถามล่าสุด
Mixologic

แต่ ... ทุกครั้งที่คุณอัปเดต (เช่นโหลดเวอร์ชันก่อนหน้า) ฐานข้อมูลของคุณคุณจะสูญเสียประวัติของคุณ (ดังนั้นคุณจึงไม่สามารถติดตั้งฐานข้อมูลใหม่เพื่อตรวจสอบประวัติได้)
JinSnow

1
ไม่บันทึกการเปลี่ยนแปลงดัชนีและมันจะมีประโยชน์สำหรับสิ่งนั้นอย่างแน่นอนเนื่องจากมันไม่ได้บันทึกอย่างถูกต้องเมื่อคุณดำเนินการด้วย…
o0 '

57
ฉันไม่เห็นไอคอน SQL นี้อยู่ที่ไหนในเวอร์ชันปัจจุบัน
Joseph Astrahan

3
@JosephAstrahan คลิกที่Query windowไอคอนถัดจากHome
amallard

64

มีแท็บคอนโซลที่ด้านล่างของหน้าจอSQL (แบบสอบถาม) โดยค่าเริ่มต้นจะไม่ขยาย แต่เมื่อคลิกแล้วควรแสดงแท็บสำหรับตัวเลือกประวัติและล้าง คลิกที่ประวัติ

ระยะเวลาในประวัติศาสตร์แบบสอบถามมีการตั้งค่าจากภายในหน้าการตั้งค่าที่เกี่ยวข้องซึ่งพบได้โดยคลิกที่ล้อเฟืองที่ด้านบนขวาของหน้าจอ

สิ่งนี้ถูกต้องสำหรับ PHP เวอร์ชัน 4.5.1-1


6
ความยาวอยู่ใต้หน้าแรก | การตั้งค่า | แบบสอบถาม SQL | ระยะเวลาในประวัติศาสตร์แบบสอบถาม และน่าขำ "มูลค่าต้องเท่ากับหรือต่ำกว่า 25!"
Bob Stein

39

คุณต้องคลิกที่คอนโซลที่ด้านล่างของหน้าจอในphpMyAdminและคุณจะได้รับ Executed history:

ใส่คำอธิบายภาพที่นี่


ฉันไม่พบหน้านี้ในคำตอบที่ยอมรับ (อาจมาจากเวอร์ชันอื่น) และสิ่งนี้ใช้ได้ผลสำหรับฉันขอบคุณ
felwithe

4
สิ่งนี้แสดงเฉพาะการสืบค้นที่เรียกใช้โดยผู้ใช้จากphpmyadminตัวมันเอง ไม่ได้แสดงบันทึกที่สมบูรณ์ของแบบสอบถามที่ดำเนินการทั้งหมด
ฟิวชั่น

12

หากต้องการดูคำค้นหาที่ผ่านมาเพียงแค่เรียกใช้คำค้นหานี้ใน phpMyAdmin

SELECT * FROM `general_log`

หากไม่ได้เปิดใช้งานให้รันสองคิวรีต่อไปนี้ก่อนรัน

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

7
มีประโยชน์มากขอบคุณ ให้ใครก็ได้ SELECT * FROM general_logต้องถูกสอบถามภายในตาราง mysql อื่นคุณต้องใส่ tablename: SELECT * FROM mysql general_log
siggi_pop

9

ฉันไม่คิดว่า phpMyAdmin จะให้คุณทำแบบนั้น แต่ฉันอยากได้ยินว่าฉันคิดผิด

ในทางกลับกันคุณสามารถเปิดใช้งานการบันทึกแบบสอบถามใน MySQL: The General Query Log


8

ได้คุณสามารถบันทึกแบบสอบถามไปยังตาราง phpMyAdmin DB พิเศษ

ดูSQL_history


สิ่งนี้เติมเต็มคำตอบที่ให้ไว้ข้างต้นโดย @Dhinakar
Meetai.com

7

ฉันใช้ phpMyAdmin Server เวอร์ชัน: 5.1.41

มีความเป็นไปได้ในการดูประวัติ sql ผ่านphpmyadmin.pma_historyตาราง

คุณสามารถค้นหาคำค้นหาของคุณในตารางนี้

pma_history ตารางมีโครงสร้างด้านล่าง:

ใส่คำอธิบายภาพที่นี่


3

คุณต้องคลิกที่หน้าต่างแบบสอบถามด้านล่างโลโก้ phpMyAdmin หน้าต่างใหม่จะเปิดขึ้น เพียงคลิกที่แท็บประวัติ SQL คุณสามารถดูประวัติของแบบสอบถาม SQL ได้ที่นั่น


2

ฉันอาจจะผิด แต่ฉันเชื่อว่าฉันเห็นรายการแบบสอบถาม SQL ก่อนหน้านี้ในไฟล์เซสชันสำหรับเซสชัน phpmyadmin


ขอโทษ ... ฉันอ่านคำถามของคุณผิด: รายการในเซสชันเป็นรายการคำสั่งก่อนหน้านี้ที่ออกผ่าน phpmyadmin ดังนั้นจึงไม่มีคำสั่ง SQL ที่ออกโดยสคริปต์ PHP ของคุณเองดังนั้นอาจไม่เป็นประโยชน์
Mark Baker

1

โอเคฉันรู้ว่าฉันมาช้าไปหน่อยและคำตอบข้างต้นบางคำก็เป็นสิ่งที่ดี

แม้ว่าจะเพิ่มขึ้นเล็กน้อยในขณะที่อยู่ในหน้า PHPMyAdmin:

  1. คลิกแท็บ SQL
  2. คลิก 'รับข้อความค้นหาที่บันทึกอัตโนมัติ'

จากนั้นจะแสดงข้อความค้นหาที่คุณป้อนล่าสุด


0

คุณสามารถเรียกใช้ mysql ที่ผ่านมาของคุณด้วยการรัน /PATH_PAST_MYSQL/bin/mysqld.exe

มันเรียกใช้ mysql ล่าสุดของคุณและคุณสามารถดูได้ใน phpmyadmin และส่วนอื่น ๆ ของระบบของคุณ

ข้อสังเกต: หยุด mysql เวอร์ชันปัจจุบันของคุณ

SF ภาษาอังกฤษของฉัน


0

ทำไมคุณไม่ใช้การส่งออกจากนั้นคลิกปุ่มตัวเลือก 'กำหนดเอง - แสดงตัวเลือกที่เป็นไปได้ทั้งหมด' จากนั้นเลือกฐานข้อมูลของคุณจากนั้นไปที่ผลลัพธ์แล้วเลือก 'ดูผลลัพธ์เป็นข้อความ' เพียงแค่เลื่อนลงและไป โวลา!


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.