สวัสดีครับ พอดีวันนี้เกิดเหตุการณ์ที่ไม่คาดคิดขึ้น คือ MySQL error ต้องเข้าไป repaire database ทั้งหมด
แต่ติดอยู่ว่า ผมไม่รู้รหัสผ่านของ root ใน mysql (แต่เป็น root ของ Linux นะ) ลองดูเป็นกรณีศึกษาครับ
วิเคราะห์สถานการณ์
Table mysql.user error ทำให้เพิ่มแก้ไข user ไม่ได้
Table อื่น ๆ ในฐานข้อมูลมีปัญหา เข้าใช้งานไม่ได้
ไม่ทราบรหัสผ่านของ root ใน mysql
ออกแบบการแก้ปัญหา
reset root password ใน mysql
repaire mysql.user
repaire all databases
เริ่มการแก้ปัญหา
เปิดไฟล์ /etc/my.cnf
ทำการเพิ่ม skip-grant-tables ใน [mysqld] ดังนี้
[mysqld]
skip-grant-tables
เสร็จแล้วเริ่มการทำงานของ mysql ใหม่
#/path-to-mysqld/mysqld restart
เข้าสู่ mysql
mysql
ทำการ repair table mysql.user
mysql>REPAIR TABLE mysql.user;
เปลี่ยนรหัสผ่าน root
mysql>update user set password=PASSWORD(‘รหัสผ่านใหม่’) where user=‘root’;
mysql>FLUSH PRIVILEGES;
mysql>\q
แก้ไขไฟล์ /etc/my.cnf โดยเอา skip-grant-tables ใน [mysqld] ออก
แล้วทำการ restart mysqld อีกครั้ง
#/path-to-mysqld/mysqld restart
ทำการ check และ repair database ทั้งหมด
#mysqlcheck -p --auto-repair --all-databases -u root
Enter Password : [ใส่รหัสผ่านที่ตั้งใหม่]
รอจนเสร็จ database ของเราก็จะได้รับการซ่อมแซมและกลับมาใช้งานได้เหมือนเดิม
หมายเหตุ ผมลองหลายวิธี หลายคำสั่ง และวิธีการที่กล่าวมานี้ใช้ได้จริงกับสถานการณ์ของผม หากท่านต้องนำไปใช้ควรปรับให้เข้ากับสถานการณ์ของท่านเอง
Credit : http://www.binarywebhost.com
mean
November 28, 2007, 7:34pm
3
เสริมให้นิดนึงครับ
หรือจะเอาจาก
/usr/local/directadmin/conf
mysql.conf
user pass ในนี้ เทียบเท่ากับ root ของ mysql ครับ
สามารถสั่ง repair ได้เหมือนกันผ่าน command
หรือ login ใน phpmyamin จะเห็นทุกๆ ฐานข้อมูล สามารถเข้าไปจัดการได้อีก 1 ช่องทางครับ
ปล. สำหรับท่านๆ ที่ใช้ DA นะ
ส่วนในกรณี การลืมรหัสผ่าน Admin ของ Directadmin
ใช้วิธี passwd admin
แล้วเคาะรหัสผ่านใหม่ลงไปได้เลยครับ
หรือขยันก็ทำปุ๋ม NewPassword ใหม่เลยจ๊า :smash:
ปล ในกรณีการเผลอไปเปลี่ยนรหัสผ่าน ในไฟล์ /usr/local/directadmin/conf/mysql.conf จะไม่สามารถทำได้โดยทันที
มิฉะนั้นแล้ว ท่านจะพบว่า Database จะใช้ไม่ได้เลยทีเดียว ต้องใช้วิธีการ Reset ทางคุณ binarywebhost
ICOM
November 28, 2007, 9:56pm
7
ขอ save ไว้เป็นความรู้ครับ ขอบคุณครับ
THSMS
November 29, 2007, 1:11am
9
[quote author=HaXoR link=topic=8816.msg85332#msg85332 date=1196265056]
ทำไรเยอะแยะ ปัญญาอ่อน
bunpot
November 29, 2007, 2:29am
10
ขอบคุณมากครับ มีประโยชน์มาก
lol
iCafe
November 29, 2007, 7:04am
11
[quote author=HaXoR link=topic=8816.msg85332#msg85332 date=1196265056]
ทำไรเยอะแยะ ปัญญาอ่อน
lol
แบบนี้ก็ได้ครับผมก็เคยเกิดขึ้น คล้ายกัน
killall mysqld
/usr/local/bin/mysqld_safe --skip-grant-tables --skip-networking & mysql -u root
mysql> use mysql;
mysql >UPDATE user SET Password=PASSWORD(“1234”) WHERE User=“root”;
mysql > exit;
killall mysqld
/usr/local/etc/rc.d/mysql-server.sh start
ใช้กับเวอร์ชั่น 4 - 5
[quote author=HaXoR link=topic=8816.msg85332#msg85332 date=1196265056]
ทำไรเยอะแยะ ปัญญาอ่อน
กระทู้ดีมีประโยชน์แบบนี้ ต้อง +1 ให้เลยครับ
ขอบคุณคับ ได้ความรู้อีกแล้ว