ROOT用户连接MySQL数据库,出现连接权限不足问题

619 阅读1分钟

问题描述

用ROOT用户连接MySQL数据库时,出现ERROR 1045 (28000)问题,如下:

Navicat端

image.png

Linux端

image.png

# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
或者
# mysql -u root -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

解决方案

# /etc/init.d/mysqld stop //停止mysql服务的运行
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & //跳过受权表访问
# mysql -u root -p //登录mysql

进入mysql数据库后,对user的密码进行修改

在mysql5.7以下的版本如下:

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='127.0.0.1' or host='localhost';//把空的用户密码都修改成非空的密码就行了。

image.png 在mysql5.7版本如下:

update mysql.user set authentication_string=password('newpassword') where user='root' and host='127.0.0.1' or host='localhost';

完成修改后刷新权限,退出并重启MySQL

mysql> FLUSH PRIVILEGES;
mysql> quit 
# /etc/init.d/mysqld restart //离开并重启mysql
# mysql -uroot -p
Enter password: <输入新设的密码newpassword> 

MySQL的安装和配置 (biancheng.net)