9/07/2554

วิธีแก้ ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

วิธีแก้ ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

ครับ...ไม่มีสิ่งใดในโลกใบที่สมบูรณ์แบบ ทุกอย่างย่อมมีข้อบกพร่อง ข้อผิดพลาดกันได้ เช่นเดียวกับ mysql บน Ubuntu 8.04 ครับ
หลังจากทำการติดตั้ง mysql+phpmyadmin ด้วยคำสั่ง apt-get
root@durian: apt-get install mysql-server phpmyadmin
การติดตั้งก็สำเร็จไม่มี error ใดๆ แต่เมื่อเรียกใช้ mysql
seksan@durian:~$ mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
 ข้อ ผิดพลาดที่เกิดขึ้นเป็น bug ของ mysql ที่ไม่จำ password นั่งปวดหัวหาวิธีแก้ ทดลองเอา mysql ออกแล้วติดตั้งให่ก็ไม่หาย ก็ลองสืบค้นแหล่งความรู้จากโลกอินเตอร์เน็ต ก็ไปพบยาแก้ปวด http://www.debian-administration.org/articles/442 ก็ขออนุญาติแปล เรียบเรียง และทดลอง ให้นะครับ
1. หยุดการทำงานของ mysql
root@durian:# /etc/init.d/mysql stop
* Stopping MySQL database server mysqld
...done.
2. ใส่ให้ mysql ทำงานในโหมด mysql-safe
root@durian:/home/seksan# /usr/bin/mysqld_safe --skip-grant-tables &[1] 6219
root@durian:/home/seksan# nohup: ignoring input and redirecting stderr to stdout
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6258]: started
3.เรียก ใช้งานโดยไม่จำเป็นต้องมี password (--skip-grant-tables)
root@durian:/home/seksan# mysql --user=root mysqlReading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 111
Server version: 5.0.51a-3ubuntu5.4 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
จาก นั้นกำหนด password ใหม่
mysql> update user set Password=PASSWORD('รหัสผ่าน') WHERE User='root';Query OK, 3 rows affected (0.00 sec)

Rows matched: 3 Changed: 3 Warnings: 0



mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)
mysql> exitBye
 4.สั่ง การทำงาน mysql
root@durian:/home/seksan# /etc/init.d/mysql start* Starting MySQL database server mysqld
...done.
5. เรียกใช้งาน
root@durian:/home/seksan# mysql -u root -pEnter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 401
Server version: 5.0.51a-3ubuntu5.4 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> 
 สรุป... วิธีนี้สำเร็จครับ และที่พลาดไม่ได้ Many thanks

1 ความคิดเห็น:

  1. ขอบคุณมากครับ ได้ความรู้จากตรงนี้ทำให้ผมสามารถนำไปใช้แก้ปัญหาได้ ขอบคุณอีกครั้งครับ

    ตอบลบ