一次非法關(guān)機(jī)導(dǎo)致mysql數(shù)據(jù)表損壞的實例解決
排查修復(fù)數(shù)據(jù)表的經(jīng)過:
1、訪問網(wǎng)頁,提示錯誤,連接不到數(shù)據(jù)庫。
2、啟動mysql服務(wù),卸載和關(guān)閉rpm安裝的mysql服務(wù)
(昨天安裝postfix好像yum安裝了mysql),用netstat -anp |grep mysqld 命令查看mysql服務(wù)沒有起來,用mysql -uroot -p也連接不到服務(wù)器。
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.
發(fā)現(xiàn)提示數(shù)據(jù)庫表損壞。(./mysql/host)
4、修復(fù)數(shù)據(jù)庫表:
cd /var/lib/mysql/mysql
myisamchk -of host.MYI
- recovering (with keycache) MyISAM-table 'host.MYI'
Data records: 0
表host.MYI修復(fù)成功。
5、再次啟動服務(wù),查看服務(wù)是否啟動,登錄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.
6、又發(fā)現(xiàn)./mysql/user表損壞。
[root@localhost mysql]# myisamchk -of user.MYI
- recovering (with keycache) MyISAM-table 'user.MYI'
Data records: 6
7、表修復(fù)成功,但是還是啟動不了服務(wù),繼續(xù)看錯誤日志。
/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 ended
8、最后一個錯誤,是./mysql/db表還沒有修復(fù)好繼續(xù)修復(fù)./mysql/db表。
9、執(zhí)行下面的命令修復(fù)./mysql/db表:
[root@localhost mysql]# myisamchk -of db.MYI
- recovering (with keycache) MyISAM-table 'db.MYI'
Data records: 0
Data records: 2
10、最后啟動mysql服務(wù)。
/usr/local/mysql/bin/mysqld_safe &
11、查看服務(wù)是否在運行。
[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
這時發(fā)現(xiàn)服務(wù)已運行。
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>
可以登錄。
13、打開網(wǎng)頁,已經(jīng)可以正常訪問了,說明MySQL數(shù)據(jù)庫的數(shù)據(jù)表修復(fù)成功。
- Python3實現(xiàn)將本地JSON大數(shù)據(jù)文件寫入MySQL數(shù)據(jù)庫的方法
- MySQL數(shù)據(jù)文件存儲位置的查看方法
- CentOS6.7 mysql5.6.33修改數(shù)據(jù)文件位置的方法
- mysql 通過拷貝數(shù)據(jù)文件的方式進(jìn)行數(shù)據(jù)庫遷移實例
- MySQL如何導(dǎo)入csv格式數(shù)據(jù)文件解決方案
- 用SQL語句解決mysql導(dǎo)入大數(shù)據(jù)文件的問題
- MYSQL數(shù)據(jù)表損壞的原因分析和修復(fù)方法小結(jié)(推薦)
- 解決MySQL數(shù)據(jù)庫意外崩潰導(dǎo)致表數(shù)據(jù)文件損壞無法啟動的問題
相關(guān)文章
mysql數(shù)據(jù)庫刪除重復(fù)數(shù)據(jù)只保留一條方法實例
這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫刪除重復(fù)數(shù)據(jù),只保留一條的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03在ubuntu中重置mysql服務(wù)器root密碼的方法
在ubuntu下安裝了mysql 5 server,結(jié)果不知道什么原因,安裝時輸入的root帳號密碼在使用時無論如何都不能通過數(shù)據(jù)庫服務(wù)器的驗證。無奈只有重置mysql的root帳號密碼。查了一下,用了以下方法成功的重置了root帳號密碼2012-10-10Linux CentOS MySQL數(shù)據(jù)庫安裝配置教程
這篇文章主要為大家詳細(xì)介紹了Linux CentOS MySQL數(shù)據(jù)庫的安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05