1. 程式人生 > >裝完mysql啟動報錯:“Table ‘mysql.plugin’ doesn’t exist” 解決方法

裝完mysql啟動報錯:“Table ‘mysql.plugin’ doesn’t exist” 解決方法

裝完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可以不需要