คำแนะนำสั้น ๆ แต่มีรายละเอียดนี้จะอธิบายวิธีรีเซ็ตรหัสผ่านรูท MySQL ที่สูญหายหรือถูกลืมโดยใช้ Windows หรือ Linux
เบื้องหลัง
คุณเคยลืมรหัสผ่านรูท MySQL ของคุณหรือไม่? เป็นหนึ่งในสิ่งเหล่านี้ที่เพิ่งเกิดขึ้นแม้ว่าจะมีข้อควรระวังมากมาย ด้วยเหตุนี้ คุณจึงถูกล็อกออกจากเซิร์ฟเวอร์ฐานข้อมูลของคุณ คุณไม่สามารถสร้างฐานข้อมูลใหม่และถูกปล่อยให้ควบคุมสถานะของเซิร์ฟเวอร์ฐานข้อมูลของคุณเพียงเล็กน้อย ในสถานการณ์เช่นนี้ การรู้วิธีกู้คืนการเข้าถึงรูทไปยังเซิร์ฟเวอร์ฐานข้อมูลของคุณนั้นมีประโยชน์ นี่คือสิ่งที่คุณสามารถทำได้เพื่อรีเซ็ตรหัสผ่านสำหรับผู้ใช้ root ใน MySQL ทั้งบน Windows และ Linux
รีเซ็ตรหัสผ่านรูท MySQL ใน Windows
เข้าสู่ระบบเซิร์ฟเวอร์ของคุณในฐานะผู้ดูแลระบบ ฆ่าเซิร์ฟเวอร์ MySQL หากทำงานอยู่ ในการดำเนินการนี้ คุณต้องมี Windows Services Manager ให้คลิกที่ เมนูเริ่ม จากนั้นไปที่ แผงควบคุม จากนั้นไปที่ เครื่องมือการดูแลระบบ และเลือก บริการ . ที่นี่มองหาเซิร์ฟเวอร์ MySQL และหยุดมัน หากไม่มีอยู่ในรายการและ MySQL กำลังทำงานอยู่ แสดงว่า MySQL ไม่ได้ทำงานเป็นบริการ ในกรณีนั้น คุณต้องโหลดตัวจัดการงานซึ่งคุณควรสามารถเข้าถึงได้โดยใช้คีย์ผสมของ Ctrl+Alt+Del . ตอนนี้ฆ่ากระบวนการ MySQL
เมื่อกระบวนการ MySQL หยุดทำงาน คุณต้องบังคับเปลี่ยนรหัสผ่านบน MySQL โดยใช้ UPDATE ร่วมกัน และ ล้าง ตัวเลือก. เปิดโปรแกรมแก้ไขข้อความที่คุณชื่นชอบและสร้างไฟล์ใหม่ ป้อนข้อความต่อไปนี้ลงในไฟล์โดยแทนที่ “NewMySQLPassword” ด้วยรหัสผ่านใหม่ของคุณ:
อัปเดต mysql.user SET Password=PASSWORD(“NewMySQLPassword”) โดยที่ User='root'; สิทธิ์ในการล้าง
สิ่งที่บรรทัดแรกทำคืออัปเดตค่าของฟิลด์ "รหัสผ่าน" ในตาราง mysql.user สำหรับผู้ใช้ "root" เป็น "NewMySQLPassword" บรรทัดที่สองจะล้างชุดสิทธิ์เก่าและทำให้แน่ใจว่ารหัสผ่านใหม่ของคุณถูกใช้ทุกที่ บันทึกข้อความนี้เป็น C:\mysql_reset.txt .
ถัดไป คุณต้องเริ่มเซิร์ฟเวอร์ MySQL ของคุณโดยส่งไฟล์นี้เป็นพารามิเตอร์การกำหนดค่า เปิดเทอร์มินัลโดยไปที่ เมนูเริ่ม จากนั้นให้ เรียกใช้ แล้วพิมพ์ cmd และกด Enter ตอนนี้ให้ป้อนคำสั่งต่อไปนี้:
C:\mysql\bin\mysqld-nt --init-file=C:\mysql_reset.txt
เมื่อเซิร์ฟเวอร์เสร็จสิ้น ให้เริ่มลบไฟล์ C:\mysql_reset.txt . รหัสผ่านรูท MySQL ของคุณควรรีเซ็ตทันที ตอนนี้รีสตาร์ทเซิร์ฟเวอร์ MySQL ของคุณอีกครั้ง กลับไปที่ Windows Services Manager อีกครั้งเพื่อดำเนินการดังกล่าว รหัสผ่านรูท MySQL ใหม่ของคุณควรใช้งานได้แล้ว
รีเซ็ตรหัสผ่านรูท MySQL ใน Linux
เข้าสู่ระบบเครื่อง Linux ของคุณในฐานะผู้ใช้รูท ขั้นตอนที่เกี่ยวข้องในการรีเซ็ตรหัสผ่าน root ของ MySQL คือการหยุดเซิร์ฟเวอร์ MySQL เริ่มต้นใหม่โดยไม่มีการอนุญาต ดังนั้นคุณจึงสามารถล็อกอินเข้าสู่ MySQL เป็น root โดยไม่ต้องใช้รหัสผ่าน ตั้งรหัสผ่านใหม่ แล้วรีสตาร์ทตามปกติ นี่คือวิธีที่คุณทำ ขั้นแรก หยุดเซิร์ฟเวอร์ MySQL:
<#># /etc/init.d/mysql หยุด#>
ตอนนี้เริ่มเซิร์ฟเวอร์ MySQL โดยใช้ --skip-grant-tables ตัวเลือกซึ่งจะเรียกใช้เซิร์ฟเวอร์โดยไม่ต้องโหลดการตั้งค่าการอนุญาต:
# mysqld_safe --skip-grant-tables &
& ตัวเลือกในตอนท้ายทำให้คำสั่งที่คุณเรียกใช้เป็นกระบวนการพื้นหลัง ตอนนี้เข้าสู่ระบบเซิร์ฟเวอร์ MySQL ของคุณในฐานะรูท:
# mysql -u รูท
ควรอนุญาตให้คุณเข้าโดยไม่ต้องถามรหัสผ่าน ขั้นตอนต่อไปนี้จะเป็นการตั้งรหัสผ่านใหม่:
mysql> ใช้ mysql;
mysql> อัปเดตชุดผู้ใช้รหัสผ่าน=PASSWORD(“NewMySQLPassword”) โดยที่ User='root';
mysql> สิทธิ์ล้าง;
mysql> ออก
แทนที่ "NewMySQLPassword" ด้วยรหัสผ่านของคุณเอง นี่คือสิ่งที่เกิดขึ้นที่นี่ บรรทัดแรกเลือกตารางการกำหนดค่า MySQL บรรทัดที่สองอัพเดตค่าของฟิลด์ "รหัสผ่าน" สำหรับผู้ใช้ "root" เป็น "NewMySQLPassword" บรรทัดที่สามล้างชุดสิทธิ์เก่าและทำให้แน่ใจว่ารหัสผ่านใหม่ของคุณถูกใช้ทุกที่ ตอนนี้ ขั้นตอนสุดท้ายคือการรีสตาร์ทเซิร์ฟเวอร์ตามปกติ และใช้รหัสผ่านรูทใหม่ของคุณเพื่อเข้าสู่ระบบ:
# /etc/init.d/mysql หยุด
# /etc/init.d/mysql start
# mysql -u root -pNewMySQLPassword
ขอแสดงความยินดี รหัสผ่านรูท MySQL ใหม่ของคุณได้รับการตั้งค่าแล้ว และเซิร์ฟเวอร์ MySQL ของคุณก็พร้อมใช้งานอีกครั้ง อย่าลืมอัปเดตแอปพลิเคชันทั้งหมดของคุณเพื่อใช้รหัสผ่านนี้หากคุณใช้งานที่ใดก็ได้