Friday, October 12

Reset root password mysql of Rasberry pi

     พอดี ผมเจอปัญหาที่เกิดจากความขี้หลงขี้ลืม ของตัวเอง หลังจากติดตั้ง mysql package ลงบนบอร์ด Raspberry pi ก็ปรากฏว่า ลืม Password root ซะอย่างงั้นจะเดาให้ตาย ก็ไม่เจอ จำไม่ได้จริงๆว่าตั้ง password ไว้อะไร ได้ลองลบ mysql package ออกแล้ว แต่พอลงใหม่ เจ้าบอร์ด Raspberry Pi ก็ดันไปเอาค่าเก่ามาซะอย่างนั้น ให้ตายสิ!!!!

forgot root password mysql on 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 จะได้ว่า

nano /etc/init.d/mysql

/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>show databases;

วิธีการนี้ใช้ได้กับ Mysql บน Linux ตัวอื่นได้ด้วย

เครดิต http://www.thegeekstuff.com

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

 

แจกฟรี พื้นที่ฝากไฟล์ 15 GB

ติดตามข่าวสารผ่าน Twitter

ติดตาม Blog นี้

About Me

My photo

สวัสดีครับ ชื่อเปิ้ลนะครับ ถ้ามีอะไรให้ช่วยเหลือได้ ก็จะช่วยครับ
ผมได้สร้างบล๊อกไว้ เพื่อเก็บรวบรวมความรู้ และประสบการณ์ในการทำงานครับ แวะไปเยี่ยมชมกันได้ครับ http://mechacity.blogspot.com และบล๊อก http://faker-programmer.blogspot.com ครับ

Blog อื่นๆของฉัน

Microcontroller Electronics update

สถิติเยี่ยมชมบล๊อก