標籤:出現 相關 限制 str shell指令碼 table dir -o ant
今天在用一鍵安裝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