อัปเดตตาราง mysql.user
เปลี่ยนรหัสผ่านโดยตรงในตารางสิทธิ์ ต้องตามด้วย FLUSH PRIVILEGES
Syntax
USE mysql;
UPDATE user SET authentication_string = PASSWORD('new_password')
WHERE user = 'user_name' AND host = 'host_name';
FLUSH PRIVILEGES;
คำอธิบาย
- new_password: รหัสผ่านใหม่
- user_name: ชื่อผู้ใช้
- host_name: โฮสต์ (localhost, %, IP, etc.)
- PASSWORD(): ฟังก์ชันแฮชรหัสผ่าน (MySQL 5.7+ ใช้ authentication_string)
ตัวอย่าง
USE mysql;
UPDATE user SET authentication_string = PASSWORD('tutorials')
WHERE user = 'user' AND host = 'localhost';
FLUSH PRIVILEGES;
ข้อควรระวัง
- MySQL 8.0+ ใช้
caching_sha2_passwordโดยค่าเริ่มต้น อาจต้องระบุ plugin - วิธีนี้เป็นวิธีเก่า แนะนำใช้
ALTER USERหรือSET PASSWORDแทน - ต้องมีสิทธิ์ UPDATE บนตาราง mysql.user