ปัญหา DROP USER ไม่ทำงานใน MySQL
เมื่อใช้คำสั่ง DROP USER แต่ผู้ใช้ยังปรากฏในตาราง mysql.user อาจเกิดจากการระบุ host ไม่ถูกต้อง
ตรวจสอบผู้ใช้ทั้งหมด
SELECT user, host FROM mysql.user;
ตัวอย่างผลลัพธ์
+------------------+-----------+ | user | host | +------------------+-----------+ | hbstudent | localhost | | ... | ... | +------------------+-----------+
ลบผู้ใช้ให้ถูกต้อง
ต้องระบุทั้ง username และ host:
DROP USER 'hbstudent'@'localhost';
ตรวจสอบอีกครั้ง
SELECT user, host FROM mysql.user;
ผู้ใช้ hbstudent@localhost จะหายไปจากรายการ
สาเหตุทั่วไป
- ไม่ได้ระบุ host (ค่าเริ่มต้นคือ '%' ซึ่งไม่ตรงกับ 'localhost')
- มีผู้ใช้ชื่อเดียวแต่ host ต่างกัน (เช่น 'user'@'%' และ 'user'@'localhost')
- ต้องใช้ FLUSH PRIVILEGES หลังลบในบางกรณี