mysql -u root ไม่ทำงาน แต่ sudo mysql -u root ไม่ได้เพราะอะไร


9

ฉันเพิ่งติดตามบทเรียนและติดตั้ง mysql โดยใช้ sudo apt-get install mysql-server-5.7

ฉันสามารถเชื่อมต่อกับฐานข้อมูลโดยใช้รหัสผ่านโดยใช้คำสั่งต่อไปนี้:

sudo mysql -u root -p

ฉันพยายามเชื่อมต่อโดยวิ่ง:

mysql -u root -p

แต่ฉันได้รับข้อผิดพลาด:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

ทำไม? ฉันจะแก้ไขสิ่งนี้ได้อย่างไร


2
ที่รัก downvoter คุณสามารถวางเหตุผลสำหรับ downvote ได้อย่างน้อยการอธิบายว่าทำไมนี่เป็นคำถามที่โง่?
user1379280

อาจเกี่ยวข้องกัน ดูคำตอบบางส่วน: askubuntu.com/questions/766334/…
Terrance

คุณได้ตั้งค่ารหัสผ่านรูทสำหรับ mysql ระหว่างการติดตั้งหรือไม่?
ขับเหล็ก

@steeldriver: ใช่ฉันทำแล้ว
user1379280

คำตอบ:


24
  1. เข้าถึงด้วย sudo: sudo mysql -u root -p
  2. ลบผู้ใช้รูท: drop user 'root'@'localhost';
  3. สร้างผู้ใช้รูทอีกครั้ง: create user 'root'@'%' identified by 'your_password';
  4. ให้สิทธิ์: grant all privileges on *.* to 'root'@'%' with grant option;
  5. อัปเดตตารางสิทธิ์: flush privileges;
  6. ออกจาก MySQL และลองเชื่อมต่อใหม่โดยไม่ต้อง sudo

ตัวอักษร: ไม่สามารถเข้าสู่ระบบในฐานะผู้ใช้ mysql จากบัญชีผู้ใช้ปกติใน ubuntu 16.04


ขอบคุณ! ขั้นตอนเหล่านี้ได้ผลสำหรับฉันด้วยและsudoตอนนี้ฉันก็ไม่จำเป็นต้องใช้ mysql! ดูเหมือนว่าการแทนที่โฮสต์localhostด้วยการ%แก้ไขปัญหาสำหรับฉัน
Vikram Hosakote

แต่ยังไม่สามารถเข้าถึงจากระยะไกลได้
Ciasto piekarz

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