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

所属分类: 操作系统 / unix linux 阅读数: 93
收藏 0 赞 0 分享

一、问题描述

    今天,笔者为了练习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> 

以上所述是小编给大家介绍的解决ubuntu 16.04安装mysql5.7.17后,登录时出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' 问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多精彩内容其他人还在看

教你隐藏Linux的命令行历史

有的时候你可能不想让一些命令记录你的的命令行历史中,本文整理了多种方法让你可以参考。
收藏 0 赞 0 分享

怎样在Linux上录制你的终端操作及回放

在这次的文章中,我们将简单的了解一下如何在Linux上录制和回放终端会话及以gif格式记录的方法。
收藏 0 赞 0 分享

SUSE Linux登录出现黑屏解决方法

登录linux时出现黑屏的找到这篇解决SUSE的黑屏问题
收藏 0 赞 0 分享

个人学习Linux知识总结第1/4页

个人学习linux经常用到的小知识,方便大家以后查阅
收藏 0 赞 0 分享

Linux 下rename 命令的用法第1/2页

刚学习linux的时候,对文件重命名首先想到的就是rename命令,但是按照在windows下对文件重命名的方式试了N多次都没有反应,在网上一搜索,发现很多人都对rename命令知之甚少,甚至有一部分人说linux下没有rename命令,建议大家用mv命令。鉴于此,于是man r
收藏 0 赞 0 分享

Centos 源

Centos操作说明
收藏 0 赞 0 分享

linux备份文件命令收集

收集一些linux下实现文件备份
收藏 0 赞 0 分享

Linux rdesktop操作系统下远程登录Windows XP桌面

众所周知XP下有"远程桌面连接"用来远程登录桌面,设置也非常简单。那有没有什么办法在linux下远程登录到XP呢?有。用rdesktop这个linux下的软件就能实现。
收藏 0 赞 0 分享

Linux操作系统添加新硬盘方法

linux下添加硬盘的方法
收藏 0 赞 0 分享

CentOS 5.1 4.6最新官方下载地址列表

最近公司接触到centos系统,于是找了下,不太容易找到,所以我直接把官方的下载地址,给贴出来了,方便以后下载
收藏 0 赞 0 分享
查看更多