โปรแกรมบัญชีเกณพ์คงค้าง รพ.สต. สสจ.สุรินทร์ รายงานผู้บริหารด้านการเงิน รพ.สต.

การแก้ 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: