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

วิธีเปลี่ยนชื่อผู้ใช้ root ใน MySQL

การเปลี่ยนชื่อผู้ใช้ root ใน MySQL

สามารถเปลี่ยนชื่อผู้ใช้ root ได้โดยอัปเดตตาราง mysql.user โดยตรง ต้องมีสิทธิ์ SUPER หรือ root เอง

ไวยากรณ์

USE mysql;
UPDATE user SET user = 'new_username' WHERE user = 'root';
FLUSH PRIVILEGES;

ขั้นตอนการทำงาน

  1. เข้าสู่ MySQL ด้วยผู้ใช้ root
  2. สลับไปใช้ database mysql: USE mysql;
  3. ตรวจสอบผู้ใช้ปัจจุบัน: SELECT user FROM user;
  4. อัปเดตชื่อ root: UPDATE user SET user = 'myRoot' WHERE user = 'root';
  5. รีโหลดสิทธิ์: FLUSH PRIVILEGES;
  6. ตรวจสอบอีกครั้ง: SELECT user FROM user;

ตัวอย่างผลลัพธ์

ก่อนเปลี่ยน:

+------------------+
| user             |
+------------------+
| Manish           |
| User2            |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
| Adam Smith       |
| User1            |
| am               |
+------------------+

หลังเปลี่ยน root -> myRoot:

+------------------+
| user             |
+------------------+
| Manish           |
| User2            |
| myRoot           |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| Adam Smith       |
| User1            |
| am               |
+------------------+

⚠️ ข้อควรระวังสำคัญ

  • เสี่ยงต่อการล็อกตัวเองออก - หากทำผิดอาจไม่สามารถเข้าระบบได้
  • แอปพลิเคชันที่เชื่อมต่อด้วย root จะหยุดทำงาน - ต้องอัปเดต config ทุกที่
  • บางระบบอาจพึ่งพาผู้ใช้ root - scripts, monitoring, backup tools
  • แนะนำให้สร้างผู้ใช้ใหม่แทน - ให้สิทธิ์เท่า root แล้วปิด root ไว้เฉพาะ localhost

วิธีที่ปลอดภัยกว่า: สร้าง Superuser ใหม่

CREATE USER 'admin'@'%' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

จากนั้นปิดการเข้าถึง root จาก remote:

UPDATE mysql.user SET Host = 'localhost' WHERE User = 'root' AND Host = '%';
FLUSH PRIVILEGES;