ฉันกำลังพยายามอัปเดตรหัสผ่านสำหรับผู้ใช้ฐานข้อมูลโดยใช้บรรทัดคำสั่ง แต่มันไม่ได้ผลสำหรับฉัน นี่คือรหัสที่ฉันใช้:
mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';
ใครช่วยบอกฉันหน่อยว่ามีอะไรผิดปกติกับรหัสนี้
ฉันกำลังพยายามอัปเดตรหัสผ่านสำหรับผู้ใช้ฐานข้อมูลโดยใช้บรรทัดคำสั่ง แต่มันไม่ได้ผลสำหรับฉัน นี่คือรหัสที่ฉันใช้:
mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';
ใครช่วยบอกฉันหน่อยว่ามีอะไรผิดปกติกับรหัสนี้
คำตอบ:
ในรหัสของคุณให้ลองใส่รหัสผ่านไว้ในใบเสนอราคาเดียว อีกวิธีหนึ่งตามเอกสารของ mysql สิ่งต่อไปนี้ควรใช้งานได้ -
SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('cleartext password');
FLUSH PRIVILEGES;
บรรทัดสุดท้ายมีความสำคัญมิฉะนั้นการเปลี่ยนรหัสผ่านของคุณจะไม่มีผล
แก้ไข:
ฉันทำการทดสอบในพื้นที่ของฉันและได้ผล -
mysql>  set password for 'test' = PASSWORD('$w0rdf1sh');
Query OK, 0 rows affected (0.00 sec)
Mine เป็นเวอร์ชัน 5 คุณสามารถใช้คำสั่งต่อไปนี้เพื่อกำหนดเวอร์ชันของคุณ -
SHOW VARIABLES LIKE "%version%";
5.7.18-0ubuntu0.16.04.1
                    ALTER USERตัวอย่าง:
ALTER USER 'username' IDENTIFIED BY 'password';
เพราะ:
SET PASSWORD ... = PASSWORD('auth_string') ไวยากรณ์เลิกใช้แล้วเมื่อ MySQL 5.7.6 และจะถูกลบออกในรุ่น MySQL ในอนาคต
SET PASSWORD ... = 'auth_string'ไม่ได้เลิกใช้ไวยากรณ์ แต่ALTER USERตอนนี้เป็นคำสั่งที่ต้องการสำหรับการกำหนดรหัสผ่าน
ALTER USER ... IDENTIFIED BY ...ทำตรง? มันแตกต่างจากUPDATE ... SET ...หรือINSERT INTO ...อย่างไร?
                    ALTER USER ... IDENTIFIED BY ...เป็นคำสั่ง SQL ที่กำหนดค่าสิทธิ์ผู้ใช้สำหรับฐานข้อมูลของคุณ UPDATEและINSERTมีฟังก์ชันการทำงานที่แตกต่างกันเช่นชื่อที่แนะนำอัปเดตบันทึกและแทรกระเบียนลงในตารางในฐานข้อมูล
                    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USER 'root' IDENTIFIED BY
                    หมายเหตุ: คุณควรเข้าสู่ระบบในฐานะผู้ใช้รูท
 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');
นี่คือคำตอบที่อัปเดตสำหรับ WAMP v3.0.6
UPDATE mysql.user 
SET authentication_string=PASSWORD('MyNewPass') 
WHERE user='root';
FLUSH PRIVILEGES;
ก่อน MySQL 5.7.6 สิ่งนี้ทำงานจากบรรทัดคำสั่ง:
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$w0rdf1sh');"
ฉันไม่มีการติดตั้ง mysql ที่จะทดสอบ แต่ฉันคิดว่าในกรณีของคุณมันจะเป็นเช่นนั้น
mysql -e "UPDATE mysql.user SET Password=PASSWORD('$w0rdf1sh') WHERE User='tate256';"
ใน windows 10 เพียงแค่ออกจากการเข้าสู่ระบบปัจจุบันและเรียกใช้สิ่งนี้ในบรรทัดคำสั่ง
-> mysqladmin -u root password “newpassword”
โดยที่แทนที่จะรูทอาจเป็นผู้ใช้ใดก็ได้
สิ่งนี้ใช้ได้กับฉัน รับโซลูชันจากหน้าเว็บ MYSQL
ใน MySQL ให้เรียกใช้แบบสอบถามด้านล่าง:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'New_Password';
ตั้งแต่ MySQL 8.0.18 สิ่งนี้ใช้ได้ดีสำหรับฉัน
mysql> SET PASSWORD FOR 'user'@'localhost' = 'userpassword';/usr/local/directadmin/conf/mysql.confรากเข้าสู่ระบบของคุณควรจะ จากนั้นลองทำตาม
UPDATE mysql.user SET password=PASSWORD('$w0rdf1sh') WHERE user='tate256' AND Host='10.10.2.30';
FLUSH PRIVILEGES;
โฮสต์คือโฮสต์ mysql ของคุณ