การแก้ error innodb
DateTime : 2010-03-26 16:03:00
Post By : virustub
IP Address :
วิธีแก้ไขครับ
Mysql>grant all on *.* to sa@"%" identified by 'sa' with grant option; แล้วEnter
Mysql>grant super on *.* to sa@"%" identified by 'sa' ; แล้วEnter
Mysql>flush privileges;แล้วEnter
Message !!
หากต้องการตอบกระทู้ Webboard กรุณาเข้าใช้ระบบก่อนนะค่ะ..
กระทู้ตอบกลับ
เยี่ยมาก ไวรัสตับ 555555555555555
Post โดย : huwko Date: 2010-03-26 16:32:14 ip:
สวัสดีครับ พอดีวันนี้เกิดเหตุการณ์ที่ไม่คาดคิดขึ้น คือ 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 ของเราก็จะได้รับการซ่อมแซมและกลับมาใช้งานได้เหมือนเดิม
หมาย เหตุ ผมลองหลายวิธี หลายคำสั่ง และวิธีการที่กล่าวมานี้ใช้ได้จริงกับสถานการณ์ของผม หากท่านต้องนำไปใช้ควรปรับให้เข้ากับสถานการณ์ของท่านเอง
Post โดย : huwko Date: 2010-06-02 13:11:06 ip: