1. 程式人生 > >Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

must ria 6.2 ans bugs 限制 答復 表示 blog

今天在用一鍵安裝mysql的shell腳本安裝mysql-5.1.73軟件後發現mysql始終無法啟動,多次執行後依舊報錯,只能去查看error日誌,發現了如下的2個錯誤:

錯誤一:Fatal error: Can‘t open and lock privilege tables: Table ‘mysql.host‘ doesn‘t exist

錯誤二:InnoDB: Error: combined size of log files must be < 4 G

很明顯,錯誤一表示有系統表缺失,錯誤二表示redo log總大小超4GB啦。

經查詢https://bugs.mysql.com發現這是個BUG,而stackoverflow上的答復大致是:

刪除mysql安裝的相關文件如:/etc/my.cnf,/usr/bin/mysql,/var/lib/mysql以及$datadir文件夾等,然後重啟服務器,再次安裝即可。

鏈接在此:https://stackoverflow.com/questions/9083408/fatal-error-cant-open-and-lock-privilege-tables-table-mysql-host-doesnt-ex

照做後安裝成功,檢查自己的安裝腳本發現並無刪除$datadir文件夾的命令。

猜測是因為第一次wget下載的安裝包由於網絡原因出了點小意外,導致第一次生成的data文件下的系統表空間裏缺了mysql.host表,從而出現了啟動失敗的錯誤。

而錯誤二則是個伴生錯誤,data文件下的ib_logfile未被刪除,導致二次安裝想生成logfile時發現總容量超過了4GB(此限制在5.6.2之後被修改為512GB)。

最後完善了下安裝腳本,加入刪除data文件的命令。

Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist