ฉันได้รับข้อผิดพลาดต่อไปนี้ประมาณทุกเดือน:
ข้อผิดพลาด MySQL: 'การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root'@'localhost'
ฉันนำทางไปยัง คำถาม StackOverflow นี้ เกี่ยวกับวิธีจัดการกับข้อผิดพลาดและ
แล้วฉันก็กลับไปทำสิ่งที่ทำอยู่
วิธีแก้ปัญหามักจะเกี่ยวข้องกับการเรียกใช้คำสั่ง SQL จาก มายเอสคิวแอล
โปรแกรมเริ่มต้นจาก ราก
บัญชียูนิกซ์:
เปลี่ยนผู้ใช้ 'root' @ 'localhost' ที่ระบุด้วย mysql_native_password โดย 'root';
เมื่อคุณ เปลี่ยนผู้ใช้
ใน MySQL มันควรจะคงอยู่อย่างนั้นจนกว่าคุณจะรันอีกอัน เปลี่ยนผู้ใช้
สั่งการ.
บน Ubuntu ปัญหาจะกลับมาอีกสักครู่ วันหนึ่ง ฉันจะพยายามเชื่อมต่อกับ MySQL และฉันจะสังเกตเห็นว่ารหัสผ่านใช้ไม่ได้อีกต่อไป ฉันไม่ได้เขียนสคริปต์ใด ๆ ที่ฉันลืมไปแล้ว สิ่งนี้จะเกิดขึ้นกับการติดตั้ง Ubuntu ใหม่ ไม่ว่าจะจากซีดี Vagrantfile หรืออินสแตนซ์ AWS บางครั้งสคริปต์ใดก็ตามที่รับผิดชอบในการทำเช่นนี้จะทำให้สิ่งต่าง ๆ เสียหายอย่างมาก เปลี่ยนผู้ใช้
ข้อความด้านบนไม่สามารถกู้คืนจากปัญหาได้อีกต่อไป
ไม่มีอะไรในข้อใดข้อหนึ่ง /etc/cron.*
ไดเรกทอรีที่ควรทำให้เกิดสิ่งนี้
ไม่มีอะไรใน /etc/mysql/* ที่ทำให้สิ่งนี้เกิดขึ้นอย่างชัดเจน
ฉันค้นหาระบบไฟล์ทั้งหมดและพบว่าไม่มีสคริปต์ที่ไม่ได้บีบอัดและไม่ได้เข้ารหัสที่ทำงาน เปลี่ยนผู้ใช้
แบบสอบถามที่มีผลต่อการกลับรายการ
สิ่งเดียวใน /var/log ที่อาจเกี่ยวข้องคือ อัพเกรดแบบอัตโนมัติ
แต่ฉันไม่เห็นว่าการอัปเกรด MySQL ควรทิ้งการตั้งค่าการรับรองความถูกต้องทั้งหมดทุกครั้งอย่างไร
เพื่อแก้ปัญหา ฉันใช้กำลังดุร้ายเพื่อหยุดสคริปต์ลับของ Canonical:
แชท +i /var/lib/mysql/mysql/user.MYD
ที่ทำให้วิ่งไม่ได้ เปลี่ยนผู้ใช้
คำสั่ง ดังนั้นงานใดก็ตามที่ Canonical ทำอยู่นี้ควรจะล้มเหลว แต่ก็หมายความว่าฉันต้องจำไว้ว่าฉันได้ทำสิ่งนี้แล้ว หากฉันจำเป็นต้องทำการเปลี่ยนแปลงที่ถูกต้องตามกฎหมายกับตารางนี้
ไม่มีใครรู้ว่าซอฟต์แวร์ชิ้นใดใน Ubuntu ที่รับผิดชอบต่อพฤติกรรมนี้