裝完mysql啟動報錯:“Table ‘mysql.plugin’ doesn’t exist” 解決方法
阿新 • • 發佈:2019-02-01
裝完mysql後啟動mysql發現啟動不了,錯誤日誌裡面會提示Table ‘mysql.plugin’ doesn’t exist,出現此錯誤的原因有兩種。
一種是裝完mysql之後沒有執行初始化mysql系統資料庫的指令碼,如果是這種情況,要先做指令碼的初始化,方法如下:
/usr/local/mysql/scripts/mysql_install_db \ --defaults-file=/var/mysql/my.cnf \ --basedir=/usr/local/mysql \ --datadir=/var/mysql/data \ --user=mysql
上面指令碼中的/usr/local/mysql/要修改成你安裝mysql的路徑。
另外一種情況是在編譯安裝mysql時,沒有指定innodb儲存引擎,對於這種情況,需要重新指定選項編譯安裝:
指令碼如下:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1\ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_DATADIR=/var/mysql/data \ -DMYSQL_USER=mysql make make install
裝完mysql後啟動mysql發現啟動不了,錯誤日誌裡面會提示Table ‘mysql.plugin’ doesn’t exist,出現此錯誤的原因有兩種。
一種是裝完mysql之後沒有執行初始化mysql系統資料庫的指令碼,如果是這種情況,要先做指令碼的初始化,方法如下:
/usr/local/mysql/scripts/mysql_install_db \ --defaults-file=/var/mysql/my.cnf \ --basedir=/usr/local/mysql \ --datadir=/var/mysql/data \ --user=mysql
上面指令碼中的/usr/local/mysql/要修改成你安裝mysql的路徑。
另外一種情況是在編譯安裝mysql時,沒有指定innodb儲存引擎,對於這種情況,需要重新指定選項編譯安裝:
指令碼如下:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_DATADIR=/var/mysql/data \ -DMYSQL_USER=mysql make
make install
在上面
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/var/mysql/data \
-DMYSQL_USER=mysql
可以不要,寫到配置檔案my.cnf就可以了,對於Ubuntu時需要像上面那樣cmake,centos可以不需要