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

FLUSH PRIVILEGES ใน MySQL ใช้ทำอะไร

โหลดตารางสิทธิ์ใหม่ (Reload Grant Tables)

เมื่อแก้ไขตารางสิทธิ์โดยตรงด้วย INSERT, UPDATE, DELETE การเปลี่ยนแปลงจะไม่มีผลทันที ต้องใช้ FLUSH PRIVILEGES เพื่อบอกเซิร์ฟเวอร์โหลดใหม่

คำสั่ง

FLUSH PRIVILEGES;

หรือใช้ mysqladmin

mysqladmin flush-privileges
mysqladmin reload

ข้อยกเว้น: GRANT Statement

ถ้าใช้คำสั่ง GRANT ไม่ต้อง FLUSH PRIVILEGES เพราะ MySQL โหลดใหม่อัตโนมัติ

เมื่อควรใช้

  • หลังแก้ไขตาราง mysql.user, mysql.db, mysql.tables_priv ด้วยคำสั่ง DML โดยตรง
  • หลังนำเข้าไฟล์ dump ที่มีข้อมูลสิทธิ์
  • เมื่อสร้าง/ลบ user ด้วยคำสั่ง INSERT/DELETE โดยตรง

ตัวอย่าง

USE mysql;
UPDATE user SET authentication_string = PASSWORD('newpass') WHERE user = 'user';
FLUSH PRIVILEGES;  -- จำเป็นต้องมี