MYSQL沒法啓動,出現CAN’T OPEN AND LOCK PRIVILEGE TABLES: INCORRECT FILE FORMAT ‘db’

    近日,因爲服務器硬盤出現壞道,致使mysql啓動不了,錯誤日誌中顯示「CAN’T OPEN AND LOCK PRIVILEGE TABLES: INCORRECT FILE FORMAT ‘db’」。mysql

    通過百度google,經過以下方法解決,轉到mysql數據庫數據目錄下,找到db這個表的位置,刪除db.frm文件,而後運行mysql_install_db腳本(這個腳本在源碼安裝的目錄下,根據本身的狀況了)進行修復,若是沒有其餘問題的話,就能夠啓動mysql了。sql

--------------------------------------------------------------shell

能夠參考下面的資料,我是參考了一個英文的帖子,可是如今找不到地址了。數據庫

 

一個安裝lenny-debian系統的小設備,手快升級mysql後再啓動mysql出現服務器

120101 15:14:21  InnoDB: Started; log sequence number 0 73553
120101 15:14:21 [Note] Recovering after a crash using /var/log/mysql/mysql-bin
120101 15:14:21 [Note] Starting crash recovery...
120101 15:14:21 [Note] Crash recovery finished.
120101 15:14:21 [ERROR] Fatal error: Can't open and lock privilege tables: Incorrect file format 'host'

老是啓動不了,google了一下,試驗後發現使用下方法能夠正常修復
step 1.使用 mysqld --skip-grant 命令啓動mysql
step 2.使用 mysqldump 將庫數據導出
step 3.使用 mysqladmin shutdown 中止mysqld 服務
step 4.在shell 下進入mysql數據目錄,刪除下面的 mysql 庫
step 5.運行 mysql_install_db 從新建立默認的 mysql 庫
step 6.運行mysqld服務,檢查導入庫數據,從新建立庫用戶、密碼以及設置權限
step 7.執行cat /etc/mysql/debian.cnf 查看 debian-sys-maint賬號密碼,運行mysql執行以下命令添加賬號
mysql> GRANT ALL PRIVILEGES ON *.*  TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '前面看到的密碼' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
若是已有debian-sys-maint賬號,可使用以下命令修改密碼爲前面看到的
mysql>SET PASSWORD FOR 'debian-sys-maint'@'localhost' = PASSWORD('前面看到的密碼');
mysql> FLUSH PRIVILEGES;

(如沒有重要數據,能夠忽略步驟1,2,3)
相關文章
相關標籤/搜索