Docker內MySQL日誌報錯:Fatal error: Can't open and lock privilege tables: Table storage engine for 'user'

情況陳述

將centos的一個容器提交爲一個鏡像後,在新的鏡像上實例一個容器,發現裏面的mysql不能啓動。
看日誌報錯爲:

Fatal error: Can't open and lock privilege tables: Table storage engine for 'user' doesn't have this option.

問題分析

Docker內,實例化後的容器是有這新的hostname,改變的就是這個。而其他全都是一個鏡像出來的,不可能出現問題。
這就是Docker的好處之一。

另外,CSDN有個哥們也遇到這個問題,但是他的解決方式的命令行實在略微麻煩和沒有解決實質性問題。因此還是自己分析實際狀況,解決自己的問題。

問題解決

因爲變動了hostname主機名,MySQL data文件就要初始化。
因此我的做法是:

// MySQL初始化(要記錄下隨機密碼)
bin/mysqld --initialize --user=mysql --basedir=/home/software/mysql --datadir=/home/software/mysql/data

// 再次啓動
bin/mysqld_safe --defaults-file=/home/software/mysql/my.cnf &

// 登錄驗證和進程驗證都可以。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章