Mysql有的時候因為掉電或者其他原因導致數據庫損壞,錯信息如下:
MySql: Can't open file: 'sdb_sessions.MYI'. (errno: 145)
For more information, see Help and Support Center at
我們可以使用mysql自帶的mysqlcheck命令來快速修復所有的數據庫或者特定的數據
如果你的數據庫主機就你一個人用,並且你還能控制的話,建議你用Mysql自帶的修復工具myisamchk.exe進行修復,操作如下:
修復前將mysql服務停止。
如果是Win主機,打開命令行方式,然後進入到mysql的/bin目錄。
執行myisamchk -r 數據庫所在路徑*.MYI
如果是類Unix主機,直接使用myisamchk -r 數據庫目錄*.MYI
使用命令myisamchk修復數據庫的MYI文件即可
# /usr/local/mysql5/bin/myisamchk -c -r /bak/lib/mysql/yourealcn/biz_user.*
myisamchk: error: ‘/bak/lib/mysql/yourealcn/biz_user.frm’ is not a
MyISAM-table
———
myisamchk: error: ‘/bak/lib/mysql/yourealcn/biz_user.MYD’ is not a
MyISAM-table
———
- recovering (with sort) MyISAM-table ‘/bak/lib/mysql/yourealcn/biz_user.MYI’
Data records: 20414
- Fixing index 1
- Fixing index 2
- Fixing
index 3
- Fixing index 4
其實還有一個簡單的方法打開你的myphpadmin,選中Can’t open file:後面同名的表,有個下拉菜單“選中項”,選擇“修復”
1. 進入管理mysql的phpmyadmin
2. 在左則選中自己的數據庫
3. 在右則勾選中錯誤信息中的那個’xxx’表
4.
滾動屏幕到下面,有個下拉菜單(With selected:),選擇”Repair table”
修改之後,並沒有發現有什麼數據損失,連忙備份了一份數據庫到郵件裡面,備份還是很重要的