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

ความหมายของ % ใน Host Column และวิธีเปลี่ยนรหัสผ่าน MySQL

ความหมายของ 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+ ตัวอักษร