ฉันกำลังพยายามอัปเดตรหัสผ่านสำหรับผู้ใช้ฐานข้อมูลโดยใช้บรรทัดคำสั่ง แต่มันไม่ได้ผลสำหรับฉัน นี่คือรหัสที่ฉันใช้:
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 ของคุณ