ข้อผิดพลาด 1698 (28000): การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' ที่ Ubuntu 18.04


22

ฉันได้ทำตามบทช่วยสอนนี้เพื่อติดตั้ง MySQL แต่หลังจากติดตั้ง MySQL สำเร็จฉันไม่สามารถเข้าถึงฐานข้อมูลได้

ข้อผิดพลาด 1698 (28000): การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost'


1
ผมประสบปัญหาเดียวกันหลังจากที่บางขุดได้ว่า u มีรหัสผ่านรากชุดตัวเองของคุณทำตามคำแนะนำที่StackOverflow
Mohammad.H Fathi

คำตอบ:


46

ฉันพบวิธีแก้ปัญหาที่นี่ลิงค์โดยทำตามวิธีนี้ฉันได้แก้ไขปัญหาของฉัน

ขั้นตอนสั้น ๆ คือ:

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

หมายเหตุ: นี่testคือรหัสผ่านใหม่สำหรับผู้ใช้รูท นอกจากนี้อย่าลืมเรียกใช้คำสั่งsudo service mysql restartหลังจากแก้ไขผู้ใช้


ขอขอบคุณ. มันเป็นเรื่องแปลกที่ mysql-server ไม่ได้ให้ป้อนรหัสผ่านอีกต่อไป
gamofe

1
ข้อผิดพลาด 1064 (42000): คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับรุ่นเซิร์ฟเวอร์ MariaDB ของคุณเพื่อหาไวยากรณ์ที่ถูกต้องเพื่อใช้ใกล้กับรูต 'USER' รูท '@' localhost 'ที่ระบุด้วย mysql_native_password BY' b230mehonot '' ที่บรรทัด 1
alhelal

ข้อผิดพลาดเดียวกันที่นี่ ... :(
user1111929

@alhelal โซลูชันสำหรับ MySQL ไม่ใช่สำหรับ MariaDB ดังนั้นคุณสามารถลองวิธีอื่น
Ashrafuzzaman Sujan

อย่าเขียน mysql -u root เพียงแค่เขียน "sudo mysql" ในระบบ Ubuntu ที่ใช้ MySQL 5.7 (และใหม่กว่า) ผู้ใช้รูทจะได้รับการรับรองความถูกต้องโดยปลั๊กอิน auth_socket
ravisoni

13

ฉันพบวิธีอื่นที่ดีกว่ามากเนื่องจากเราไม่ต้องการให้รหัสผ่านใด ๆ สำหรับระบบภายใน
มันเป็นดังนี้

เปิดเทอร์มินัลและประเภท

sudo mysql -u root -p

มันจะให้คุณใน mysql ที่นี่คุณสามารถยิงคำสั่ง mysql ใด ๆ

ใช้ตาราง mysql เพื่อเปลี่ยนประเภทตารางเพื่อให้เราสามารถใช้รหัสผ่านที่ว่างเปล่า ร้องเป็นคำสั่งสำหรับมัน

USE mysql;

ตอนนี้เราเปลี่ยนประเภทของตารางโดยทำตามคำสั่ง

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

ตอนนี้เราต้องล้างสิทธิ์เนื่องจากเราใช้ UPDATE หากคุณใช้ INSERT, UPDATE หรือ DELETE บนตารางการให้สิทธิ์โดยตรงคุณต้องใช้สิทธิ์การล้างข้อมูลเพื่อโหลดตารางการให้สิทธิ์ซ้ำอีกครั้ง

FLUSH PRIVILEGES;

ตอนนี้ออกจาก mysql โดยคำสั่งดังต่อไปนี้

exit;

ตอนนี้รีสตาร์ทเซิร์ฟเวอร์ mysql โดยทำตามคำสั่ง

service mysql restart

หวังว่ามันจะช่วยได้

ขอขอบคุณ.


2
นี่คือคำตอบที่ถูกต้อง
Ningappa

ขอบคุณที่มีความสุขที่ได้ช่วย :)
Krunal Pathak
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.