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

时间:2022-09-20 08:30:11

今天在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下可以发现了基本的一些系统表。心情大好。