Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL DROP USER แต่ผู้ใช้ยังคงอยู่ในตาราง mysql.user

ปัญหา 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 หลังลบในบางกรณี