ความหมายของ Host ใน mysql.user
localhost- เข้าถึงได้เฉพาะจากเครื่องเดียวกัน (Unix Socket)%- Wildcard เข้าถึงได้จาก Host ใดๆ (Remote/Network)192.168.1.%- เข้าถึงได้จาก IP Range นั้นspecific.host.name- เข้าถึงได้จาก Hostname นั้น
เปลี่ยนรหัสผ่านผู้ใช้
SET PASSWORD FOR 'username'@'host' = 'newpassword';
ตัวอย่าง
-- ดู User และ Host SELECT user, host FROM mysql.user; -- เปลี่ยนรหัสผ่าน John@localhost SET PASSWORD FOR 'John'@'localhost' = 'John123456'; -- บังคับ Reload Privileges FLUSH PRIVILEGES;
MySQL 5.7.6+ / 8.0 ใช้ ALTER USER
ALTER USER 'John'@'localhost' IDENTIFIED BY 'John123456';
ข้อควรระวัง
- User + Host เป็น Unique Key ต้องระบุ Host ให้ตรง
- FLUSH PRIVILEGES จำเป็นในบาง Version (MySQL < 8.0)
- MySQL 8.0 ใช้ caching_sha2_password เป็น Default Authentication
- รหัสผ่านควรซับซ้อน: ตัวพิมพ์ใหญ่/เล็ก ตัวเลข สัญลักษณ์ 12+ ตัวอักษร