1. 程式人生 > >[MySQL]Fatalerror: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

[MySQL]Fatalerror: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

今天在centOS7上安裝mysql5.6後, 無法通過mysql -u root登入, 並且提示

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

/etc/my.cnf下的日誌路徑為/var/log/mysqld.log, 開啟日誌並檢視發現提示:
Fatalerror: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
/etc/my.cnf下的資料目錄為/var/lib/mysql,去到該目錄下發現並沒有相關的表文件, 子目錄mysql還是空的。

我是這樣安裝mysql的:

# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server
結果安裝完之後, 嘗試重啟服務service mysqld restart一直失敗, 之後才發現這個錯誤提示。艱難查完資料後看到有說到預設安裝的資料目錄與my.cnf中預設的datadir不一致, 會導致這個問題。

安裝mysql時預設指定資料目錄為/opt/data, 因此我嘗試將my.cnf的相關配置也修改為datadir=/opt/data。

儲存退出, 重啟mysql後, 可以正常登入, 並且在/opt/data/mysql下可以發現了基本的一些系統表。心情大好。