ubuntu 16.04安装mysql5.7.17后,登录时出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' 问题解决!

一、问题描述

    今天,笔者为了练习sql,在ubuntu16.04上安装了mysql。笔者在网上搜索了在ubuntu16.04安装mysql的步骤,并跟着步骤一步步操作,然而,让笔者无法明白的是,网上说在安装mysql的过程会弹出输入密码的窗口,然而笔者在安装的过程中没有弹出任何窗口,而且也没有报错。正当笔者在登录mysql时,问题就出现了,如图:

如图,笔者尝试多种输入方式,但都得到了一个同样地令人忧伤的结果,ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
为了明白这个问题,笔者又在网上广泛搜索,从

MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)的真正原因

这条链接找到了问题产生的原因,然而笔者学识尚浅,看得不是很懂,但笔者还是要解决问题的呀,于是就换个话题搜索,既然笔者不知道密码,那么我就以“忘记root密码”为搜索对象,于是找到了

ubuntu 16.04 下重置 MySQL 5.7 的密码(忘记密码)

然而,到了这里,笔者还是不能解决问题,因为


笔者的配置文件/etc/mysql/my.cnf下没有[mysqld]这一段啊哭

后来,笔者又在网上折腾了许久,终于在/etc/mysql/mysql.conf.d/mysqld.cnf 这个文件里找到了[mysqld]这一段,感动啊大哭


至此笔者认为,mysql5.7.17将原先意义的my.cnf改为mysqld.cnf,并放在/etc/mysql/mysql.conf.d/路径下。

到此,笔者遇到问题总算解决了,真是开心呀!

下面笔者介绍自己的mysql安装过程和问题的具体解决过程。


二、mysql安装过程

在ubuntu终端下依次输入命令:

    $  sudo apt update

    $ sudo apt-get install mysql-server mysql-client
    

三、问题解决过程

1.打开/etc/mysql/mysql.conf.d/mysqld.cnf 文件,命令如下

    $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf


2.找到[mysqld]段,并加入一行“skip-grant-tables”,如下图,



3.重启mysql服务,用空密码进入mysql管理命令行,切换到mysql库,操作命令如下,

    $ mysql

        Welcome to the MySQL monitor.  Commands end with ; or \g.

    mysql> use mysql
        Reading table information for completion of table and column names
        You can turn off this feature to get a quicker startup with -A
        Database changed

    mysql> update mysql.user set authentication_string=password('newpass') where user='root' and Host ='localhost';
        Query OK, 1 row affected, 1 warning (0.00 sec)
        Rows matched: 1  Changed: 1  Warnings: 1

    mysql> update user set plugin="mysql_native_password";
        Query OK, 0 rows affected (0.00 sec)
        Rows matched: 3  Changed: 0  Warnings: 0

    mysql> flush privileges;
        Query OK, 0 rows affected (0.01 sec)

   
mysql> quit;
        Bye

4.回到sudo vi  /etc/mysql/mysql.conf.d/mysqld.cnf把刚才加入的那一行“skip-grant-tables”注释或删除掉。

5.再次重启mysql服务sudo service mysql restart使用新的密码登陆,修改成功。

    $ mysql -u root -p new_pass 
        Welcome to the MySQL monitor.  Commands end with ; or \g. 
    mysql> 

6.至此,问题解决



  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值