当我开开心心在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 -u debian-sys-maint -p 然后回车输入 pdVNwcfOhr6PX2o2。这样就进入了MySQL了,进入之后我们 use mysql,然后打开user表。发现里面有用户的信息其中就有root但是密码是被mysql5加密的。(这个密码解密需要付费就放弃了)。
接下来就简单了,既然我们不知道root密码。那就直接改就好了。在user表下输入set password for 'root'@'localhost'=password('你的密码'); 然后重启mysql服务。输入mysql -u root -p 回车 你的密码。就可以了。