《Mysql學習一次非法關機導致mysql數據表損壞的實例解決》要點:
本文介紹了Mysql學習一次非法關機導致mysql數據表損壞的實例解決,希望對您有用。如果有疑問,可以聯系我們。
排查修復數據表的經過:MYSQL學習
1、拜訪網頁,提示錯誤,連接不到數據庫.MYSQL學習
2、啟動mysql服務,卸載和關閉rpm安裝的mysql服務
(昨天安裝postfix好像yum安裝了mysql),用netstat -anp |grep mysqld 命令查看mysql服務沒有起來,用mysql -uroot -p也連接不到服務器.MYSQL學習
3、查看錯誤提示:
110726 17:02:23 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.?
110726 17:02:23 [ERROR] /usr/local/mysql/libexec/mysqld: Table './mysql/host' is marked as crashed and last (automatic?) repair failed?
110726 17:02:23 [ERROR] Fatal error: Can't open and lock privilege tables: Table './mysql/host' is marked as crashed and last (automatic?) repair failed 110726 17:02:23 mysqld_safe mysqld from pid file /var/lib/mysql/localhost.localdomain.pid ended?
110726 17:24:31 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql?
110726 17:24:31 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
發現提示數據庫表損壞.(./mysql/host)MYSQL學習
4、修復數據庫表:
cd /var/lib/mysql/mysql?
myisamchk -of host.MYI?
- recovering (with keycache) MyISAM-table 'host.MYI'?
Data records: 0?
表host.MYI修復成功.MYSQL學習
5、再次啟動服務,查看服務是否啟動,登錄mysql,還是不行.所以再次查看錯誤日志.
/usr/local/mysql/libexec/mysqld: Table './mysql/plugin' is marked as crashed and last (automatic?) repair failed?
/usr/local/mysql/libexec/mysqld: Table 'plugin' is marked as crashed and last (automatic?) repair failed?
110726 17:24:31 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.?
110726 17:24:31 [ERROR] /usr/local/mysql/libexec/mysqld: Table './mysql/user' is marked as crashed and last (automatic?) repair failed?
110726 17:24:31 [ERROR] Fatal error: Can't open and lock privilege tables: Table './mysql/user' is marked as crashed and last (automatic?) repair failed 110726 17:24:31 mysqld_safe mysqld from pid file /var/lib/mysql/localhost.localdomain.pid ended?
110726 17:27:13 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql?
110726 17:27:13 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.MYSQL學習
6、又發現./mysql/user表損壞.
[root@localhost mysql]# myisamchk -of user.MYI?
- recovering (with keycache) MyISAM-table 'user.MYI'?
Data records: 6MYSQL學習
7、表修復成功,但是還是啟動不了服務,繼續看錯誤日志.
/usr/local/mysql/libexec/mysqld: Table './mysql/plugin' is marked as crashed and last (automatic?) repair failed?
/usr/local/mysql/libexec/mysqld: Table 'plugin' is marked as crashed and last (automatic?) repair failed?
110726 17:27:13 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.?
110726 17:27:13 [ERROR] /usr/local/mysql/libexec/mysqld: Table './mysql/db' is marked as crashed and last (automatic?) repair failed?
110726 17:27:13 [ERROR] Fatal error: Can't open and lock privilege tables: Table './mysql/db' is marked as crashed and last (automatic?) repair failed?
110726 17:27:13 mysqld_safe mysqld from pid file /var/lib/mysql/localhost.localdomain.pid endedMYSQL學習
8、最后一個錯誤,是./mysql/db表還沒有修復好繼續修復./mysql/db表.MYSQL學習
9、執行下面的命令修復./mysql/db表:
[root@localhost mysql]# myisamchk -of db.MYI?
- recovering (with keycache) MyISAM-table 'db.MYI'?
Data records: 0?
Data records: 2MYSQL學習
10、最后啟動mysql服務.
/usr/local/mysql/bin/mysqld_safe &MYSQL學習
11、查看服務是否在運行.
[root@localhost ~]# netstat -anp | grep mysqld?
tcp0? 0??
0.0.0.0:3306?
0.0.0.0:*?? LISTEN
4360/mysqld??
unix? 2? [ ACC ] STREAM LISTENING 14172
4360/mysqld /tmp/mysql.sock
這時發現服務已運行.MYSQL學習
12、登錄mysql試試.
[root@localhost ~]# mysql -uroot -p123456?
Welcome to the MySQL monitor.? Commands end with ; or \g.?
Your MySQL connection id is 35?
Server version: 5.1.55-log Source distribution?
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.?
This software comes with ABSOLUTELY NO WARRANTY. This is free software,?
and you are welcome to modify and redistribute it under the GPL v2 license?
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.?
mysql>?
可以登錄.MYSQL學習
13、打開網頁,已經可以正常拜訪了,說明MySQL數據庫的數據表修復成功.MYSQL學習
維易PHP培訓學院每天發布《Mysql學習一次非法關機導致mysql數據表損壞的實例解決》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。