หากคุณไม่เคยกำหนดรหัสผ่านรูทสำหรับ MySQL เซิร์ฟเวอร์จะไม่ต้องการรหัสผ่านเลยสำหรับการเชื่อมต่อในฐานะรูท อย่างไรก็ตาม สิ่งนี้ไม่ปลอดภัย ขอแนะนำอย่างยิ่งให้คุณตั้งรหัสผ่าน
ในการตั้งรหัสผ่านรูทเป็นครั้งแรก มีวิธีดำเนินการสองวิธี:
-
ใช้คำสั่ง mysql_secure_installation คำสั่งนี้จะถามถึงรหัสผ่าน root ของ MySQL ทั้งเก่าและใหม่ และจะดำเนินการตั้งค่าความปลอดภัยอื่นๆ รวมถึงการปิดใช้งานฐานข้อมูลทดสอบ
นี่คือวิธี:
เปิด Terminal และพิมพ์คำสั่ง:mysql_secure_installation
-
ตอบคำถามตามที่แสดงด้านล่าง:
เปลี่ยนรหัสผ่านรูทหรือไม่ [ใช่/n] <-- y
รหัสผ่านใหม่:<-- ป้อนรหัสผ่านรูท MySQL ใหม่
ป้อนรหัสผ่านใหม่อีกครั้ง:<-- ทำซ้ำรหัสผ่านรูท MySQL
ลบผู้ใช้ที่ไม่ระบุชื่อ? [ใช่/n] <-- y
ไม่อนุญาตให้รูทล็อกอินจากระยะไกล? [ใช่/n] <-- y
ลบฐานข้อมูลทดสอบและเข้าถึงหรือไม่ [ใช่/n] <-- y
โหลดตารางสิทธิพิเศษตอนนี้หรือไม่ [ใช่/n] <-- y
ป.ล. สาเหตุที่พบบ่อยที่สุดสำหรับข้อผิดพลาดนี้คือรหัสผ่านว่างเปล่า คุณต้องระบุรหัสผ่านรูทขณะเชื่อมต่อกับฐานข้อมูล Mysql:
mysqladmin -u root -pROOT-PASSWORD.
2. ใช้คำสั่ง mysqladmin ที่พรอมต์ของเชลล์ดังนี้:
-
เปิด Terminal และพิมพ์คำสั่งต่อไปนี้:mysqladmin -u root password newpass
-
ป้อนรหัสผ่าน
โปรดทราบว่า หากคุณเห็นสิ่งต่อไปนี้:
mysqladmin:การเชื่อมต่อกับเซิร์ฟเวอร์ที่ 'localhost' ล้มเหลว
ข้อผิดพลาด:'การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root'@'localhost' (ใช้รหัสผ่าน:ใช่)'
คุณต้องทำตามคำแนะนำด้านล่างเกี่ยวกับวิธีกู้คืนรหัสผ่าน MySQL ของคุณ
อย่างไรก็ตาม คำว่า 'รหัสผ่าน' ในตัวอย่างข้างต้นเป็นส่วนหนึ่งของคำสั่ง ดังนั้น อย่าแทนที่ด้วยรหัสผ่านของคุณ ป้อนรหัสผ่านใหม่ในส่วน 'รหัสผ่านใหม่'
เอาล่ะ นานแล้วที่คุณติดตั้ง MySQL บน Mac และตั้งรหัสผ่านผู้ใช้รูท คุณสามารถลืมรหัสผ่านรูทของ MySQL ได้อย่างง่ายดายหลังจากผ่านไประยะหนึ่ง นั่นคือกรณีของคุณใช่ไหม ไม่ต้องกังวล หากคุณลืมรหัสผ่าน root ของ MySQL จำรหัสผ่านไม่ได้หรือต้องการเจาะระบบ คุณสามารถรีเซ็ตรหัสผ่านฐานข้อมูล MySQL ได้ง่ายๆ จากบรรทัดคำสั่ง ตราบใดที่คุณทราบรหัสผ่านผู้ใช้ root ของกล่องที่คุณเปิดอยู่
การรีเซ็ตรหัสผ่าน MySQL ไม่ใช่เรื่องยาก แต่มันแตกต่างไปจากเวอร์ชันที่คุณใช้
นี่คือวิธีรีเซ็ตรหัสผ่าน MySQL บน Mac:
-
หยุดเซิร์ฟเวอร์ MySQL ในการดำเนินการนี้ คุณต้องไปที่ System Preferences และเลือก MySQL จากนั้นเลือกหยุดเซิร์ฟเวอร์ MySQL
เคล็ดลับ: อีกอย่าง คุณสามารถใช้ Terminal เพื่อหยุด MySQL Server ได้ คุณต้องพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัล:
บริการ mysql หยุด
คุณจะได้รับผลลัพธ์ดังต่อไปนี้:
หรือหยุดเซิร์ฟเวอร์ฐานข้อมูล MySQL:mysqld
2. เริ่มเซิร์ฟเวอร์ในเซฟโหมดด้วยการเลี่ยงผ่านสิทธิ์:ใน Terminal ให้พิมพ์คำสั่งต่อไปนี้:
sudo /usr/local/mysql/bin/mysqld_safe –skip-grant-tables |
คุณจะเห็นสิ่งต่อไปนี้:
เชื่อมต่อกับเซิร์ฟเวอร์ MySQL โดยใช้ไคลเอนต์ MySQL:ในหน้าต่างเทอร์มินัลใหม่และพิมพ์คำสั่งต่อไปนี้ (ตรวจสอบให้แน่ใจว่าคุณพิมพ์ทีละบรรทัด):
mysql -u root
ผลลัพธ์มีดังต่อไปนี้:
4. ตั้งรหัสผ่านผู้ใช้รูท MySQL ใหม่:
คำสั่งถัดไปขึ้นอยู่กับเวอร์ชัน MySQL ของคุณ
-
สำหรับ MySQL 5.7.5 และรุ่นก่อนหน้า
MySQL 5.7.6 และใหม่กว่า
5. หยุดเซิร์ฟเวอร์ MySQL:ใช้คำสั่งนี้เพื่อหยุด MySQL:
killall mysqld
สุดท้าย เริ่มเซิร์ฟเวอร์ MySQL อีกครั้งและทดสอบ:
ข้อควรพิจารณาที่สำคัญ
สามารถใช้ MySQL ได้โดยไม่ต้องใช้รหัสผ่าน แต่ด้วยเหตุผลด้านความปลอดภัย ทางที่ดีควรตั้งรหัสผ่านรูท ไม่ต้องกังวล หากคุณลืมรหัสผ่านนั้น การกู้คืนรหัสผ่านรูท MySQL บน Mac ของคุณนั้นไม่ใช่เรื่องยาก เพียงใช้คำแนะนำนี้