Linux安装Mysql - 解决Access denied for user ''@'localhost' to database 'mysql'问题

时间:2021-10-05 19:20:32

昨天在centos上安装mysql后,未设置root用户,导致了一系列问题,今天可算是解决了,下面开始介绍解决方法


输入mysql,成功启动后输入use mysql,出现如下错误:Access denied for user ''@'localhost' to database 'mysql' 

还有,输mysql可以,输mysql -u root就出错了:
Access denied for user 'root'@'localhost' (using password: NO).
原因是:
是昨日设置ROOT密码时出错
update user set password = '123456' where user ="root" //这样写是错的,密码其实不是123456

应该为update user set password = password ('123456') where user = "root"


解决问题的具体操作步骤

关闭mysql:
# service mysqld stop
然后:(该命令是让mysql跳过权限检查,否则我们没有权限访问mysql.user那张表,也就无法设置我们的账户)
# mysqld_safe --skip-grant-tables
启动mysql:

# service mysqld start

连接mysql:

mysql -u root

切换到mysql这个库

mysql> use mysql

设置我们的账户密码:

mysql> UPDATE user SET Password=PASSWORD('xxx') WHERE user='root';

返回成功后(该命令是清空缓存中的权限):

mysql> flush privileges;

现在已经可以用账号密码登录的

退出后重新试一下就可以了

mysql>\q