พอดี ผมเจอปัญหาที่เกิดจากความขี้หลงขี้ลืม ของตัวเอง หลังจากติดตั้ง mysql package ลงบนบอร์ด Raspberry pi ก็ปรากฏว่า ลืม Password root ซะอย่างงั้นจะเดาให้ตาย ก็ไม่เจอ จำไม่ได้จริงๆว่าตั้ง password ไว้อะไร ได้ลองลบ mysql package ออกแล้ว แต่พอลงใหม่ เจ้าบอร์ด Raspberry Pi ก็ดันไปเอาค่าเก่ามาซะอย่างนั้น ให้ตายสิ!!!!
เห็นทีต้อง reset password root บน Mysql ซะแล้วแบบนี้ ค้นหาข้อมูลในเนต ก็เจอนะ แต่ งง ฉิบ โดยเฉพาะเว็บหลัก Mysql เข้าไปอ่านแล้ว งง จริงๆ มันให้ทำอะไรของมันก็ไม่รู้ (จริงๆ มันก็บอกถูกแหละ แต่ผมไม่เข้าใจเอง :P )
อาการเวลาเราเรียกใช้ Mysql จะโชว์ข้อความ
#mysql -u root -p
Enter Password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ให้ทำการหยุด service mysql ก่อน ถ้ายังไม่ได้เป็น root ให้เปลี่ยนตัวเองให้เป็น root ก่อนครับ ด้วยคำสั่ง
sudo su
เมื่อกลายเป็น root แล้ว (จะพบว่า ที่ prompt จะกลายเป็น # ) ให้เราทำการหยุด service mysql ด้วยคำสั่ง
service mysql stop หรือจะใช้คำสั่ง /etc/init.d/mysql stop ก็ได้ครับ
จากนั้น ให้เราทำการเข้าไปแก้ไขที่ไฟล์ /etc/init.d/mysql ด้วยคำสั่ง
nano /etc/init.d/mysql
มองหาบรรทัดที่เขียนว่า /usr/bin/mysqld_safe > /dev/null 2>&1 &
ให้ทำการเพิ่ม --skip-grant-tables ต่อท้าย mysqld_safe จะได้ว่า
/usr/bin/mysqld_safe --skip-grant-tables > /dev/null 2>&1 &
บันทึกไฟล์ Ctrl+x , กด Y , แล้วกด Enter
จากนั้น ให้เราทำการเริ่ม service mysql ใหม่อีกครั้ง ด้วยคำสั่ง
service mysql start หรือคำสั่ง /etc/init.d/mysql start ก็ได้เหมือนกัน
รอจนกว่า จะขึ้น
Starting MySQL. [ OK ]
ตอนนี้ เราจะทำการ login เข้า mysql ทันที โดยไม่ต้องใช้ password เมื่อเข้าไปได้แล้ว เราจะทำการกำหนด password ใหม่ ให้มัน
เข้า mysql ด้วยคำสั่ง
mysql -u root mysql
จะได้
Reading 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 1
Server version: 5.1.25-rc-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
แสดงว่าเรา login เข้ามาได้แหละ ให้เราทำการเปลี่ยน password ให้ใหม่ทันที ด้วยคำสั่ง
mysql>UPDATE user SET password=PASSWORD('ตั้งพาสเวิร์ดใหม่') WHERE user='root';
แล้วก็ทำการ flush ข้อมูลซะ เพื่อให้มีผลบังคับใช้เดี่ยวนี้
mysql> flush privileges;
กด Ctrl+D เพื่อออกจาก mysql พอออกมาแล้ว เราจะกลับไปแก้ไขที่ /etc/init.d/mysql อีกครั้ง เพื่อเอา --skip-grant-tables ออก
แต่ให้เราหยุด service mysql ก่อน ด้วยคำสั่ง
service mysql stop หรือ /etc/init.d/mysql stop ก็ได้
แล้วเข้าไปแก้ไขไฟล์ ด้วยคำสั่ง
nano /etc/init.d/mysql
เอา --skip-grant-tables แล้วทำการบันทึก และออกจากโปรแกรม nano
จากนั้น ให้ทำการเปิด service mysql อีกครั้ง แล้ว login เข้า mysql ด้วย password ใหม่ ที่เราได้ตั้งไป (อย่าบอกว่า ลืมอีกนะ -_-" )
service mysql start
แล้ว ก็ login เข้า mysql ด้วยคำสั่ง
mysql -u root -p
Enter Password: พาสเวิร์ดใหม่ที่ได้ตั้งไป
สังเกตว่า ถ้าเรา login ด้วย root จริง เราจะมองเห็น database ที่ชื่อ mysql ลองใช้คำสั่งแสดงฐานข้อมูล
mysql>show databases;
วิธีการนี้ใช้ได้กับ Mysql บน Linux ตัวอื่นได้ด้วย
เครดิต http://www.thegeekstuff.com
0 ความคิดเห็น:
Post a Comment