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 -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 回车 你的密码。就可以了。

        

原文地址:https://www.cnblogs.com/koocookie/p/7245197.html