เมื่อฉันทำงานในพื้นที่ฉันไม่จำเป็นต้องป้อนรหัสผ่านเพื่อเข้าถึงฐานข้อมูล ฉันเปลี่ยนรหัสผ่านรูทของฉันเมื่อฉันติดตั้ง mysql ครั้งแรก แต่ฉันไม่ทราบวิธีการเปลี่ยนรหัสผ่านกลับมา ฉันควรทำอย่างไร?
เมื่อฉันทำงานในพื้นที่ฉันไม่จำเป็นต้องป้อนรหัสผ่านเพื่อเข้าถึงฐานข้อมูล ฉันเปลี่ยนรหัสผ่านรูทของฉันเมื่อฉันติดตั้ง mysql ครั้งแรก แต่ฉันไม่ทราบวิธีการเปลี่ยนรหัสผ่านกลับมา ฉันควรทำอย่างไร?
คำตอบ:
ในการเปลี่ยนรหัสผ่านรูทเป็นnewpassword
:
mysqladmin -u root -p'oldpassword' password 'newpassword'
หากต้องการเปลี่ยนให้รูทไม่ต้องใช้รหัสผ่าน:
mysqladmin -u root -p'oldpassword' password ''
หมายเหตุ: ฉันคิดว่ามันเป็นเรื่องสำคัญที่ไม่มีช่องว่างระหว่าง-p
และ'oldpassword'
แต่ฉันอาจผิดเกี่ยวกับเรื่องนั้น
แทนที่จะลบรหัสผ่าน (ซึ่งอาจมีผลกระทบที่ไม่พึงประสงค์ในอนาคตหากคุณเปิดเผยเซิร์ฟเวอร์นั้นให้ Wild) ให้ใส่รหัสผ่านปัจจุบัน (และชื่อผู้ใช้ของคุณ) ลงใน~/.my.cnf
(หรือตำแหน่งที่เทียบเท่าใน Windows) ที่มีลักษณะดังนี้:
[client]
user = root
password = s3kr1t
สิ่งนี้ทำให้ MySQL มีความสามารถที่ยอดเยี่ยมในการ autologin โดยใช้ข้อมูลประจำตัวที่ให้ไว้โดยไม่ทำให้คุณเปิดกว้างสำหรับความไม่พอใจในอนาคต
เปลี่ยนรหัสผ่านรูท:
อัพเดท mysql.user ตั้งรหัสผ่าน = PASSWORD ('MyNewPass') WHERE User = 'root';
สิทธิในการชำระล้าง
สำหรับการอ้างอิง: เอกสาร MySQL อย่างเป็นทางการ
โปรดทราบว่าเริ่มต้นด้วย MySQL 5.7 ปลั๊กอินvalidate_passwordนั้นมีการใช้งานตามค่าเริ่มต้นและป้องกันไม่ให้คุณใช้รหัสผ่านที่ว่างเปล่า
คุณต้องปิดการใช้งานปลั๊กอินนี้เพื่ออนุญาตให้ใช้รหัสผ่านที่ว่างเปล่า:
UNINSTALL PLUGIN validate_password;
SET PASSWORD FOR root@localhost = PASSWORD('');
ระวังว่าถ้าคุณไม่ใส่ใจเรื่องความปลอดภัยคุณควรปฏิบัติตามคำแนะนำของ @ wombleและใช้รหัสผ่านพร้อมกับ.my.cnf
ไฟล์เพื่อความสะดวก
ตรวจสอบบทความของฉันการลบรหัสผ่าน root ของ MySQLในหัวข้อนี้!
ในรุ่นที่ใหม่กว่า
UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root'
และจะลบรหัสผ่าน
UPDATE mysql.user SET authentication_string=PASSWORD('') WHERE User='root'