ubuntu下连接mysql出现Access denied for user 'rose'@'localhost' ,using password: NO的解决方法

当我开开心心在linux下安装MySQL成功后,在终端输入mysql -u root -p回车后却出现了 Access denied for user 'rose'@'localhost' (using password: NO) 这个错误。之前安装没有遇到过这个问题。

网上搜了下发现是 用户访问被拒绝”玫瑰'@'本地主机'(使用密码:无)。

在搜索了好多解决方案后发现都没有彻底解决我的问题,最后我自己结合了下这几种方案最终成功的解决了我的问题。话不多说方法如下。

既然我们无法通过root用户进入MySQL,那我们就只能通过其他用户登录MySQL了。在我们下载安装MySQL的时候系统给我们创建了一个用户。打开 /etc/mysql/debian.cnf 。

内容如下:

# Automatically generated for Debian scripts. DO NOT TOUCH!

[client]

host = localhost

user = debian-sys-maint

password = pdVNwcfOhr6PX2o2

socket = /var/run/mysqld/mysqld.sock

[mysql_upgrade]

host = localhost

user = debian-sys-maint

password = pdVNwcfOhr6PX2o2

socket = /var/run/mysqld/mysqld.sock

我们找到client的user和password,然后在终端输入 mysql -udebian-sys-maint -p 然后回车输入 pdVNwcfOhr6PX2o2。这样就进入了MySQL了,进入之后我们 use mysql,然后打开user表。发现里面有用户的信息其中就有root但是密码是被mysql5加密的。(这个密码解密需要付费就放弃了)。

接下来就简单了,既然我们不知道root密码。那就直接改就好了。在user表下输入set password for 'root'@'localhost'=password('你的密码'); 然后重启mysql服务输入mysql -u root -p 回车 你的密码。就可以了。