ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

在Ubuntu下

想要登录mysql数据库

root@JD:~# mysql -uroot -p

报错

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

导致登录数据库不成功

打开文件

Ubuntu 14.04下apt-get安装mysql,登陆无法登陆,报错信息这样描述:在用命令(sudo apt-get install mysql-server mysql-client)安装完.mysql服务即开始运行了.此时需要修改root密码,但经常会出现这么一种情况.’Access denied for user ‘root’@’localhost’ (using password: YES)’ 或者其他致使无法登录mysql的情况。

解决方法:
1.打开/etc/mysql/debian.cnf文件,里面存储了相关的密码,我的文件信息如下

sudovi /etc/mysql/debian.cnf# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = 6x1XG2B5p75WtFV2
socket = /var/run/mysqld/mysqld.sock

[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = 6x1XG2B5p75WtFV2
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

在[client]段有user=以及password=这两行,这就是通过apt-get安装mysql,系统给我们设置的mysql登录名和密码

输入命令:
mysql -u debian-sys-maint -p     

#debian-sys- maint即debian.cnf中user=后面的内容.回车后会提示输入密码,此时把password=后面的内容复制粘贴后回车即可进行mysql 控制台

 
use mysql;
update mysql.user set authentication_string=password('新密码') where user='root'and Host ='localhost';
update user set plugin="mysql_native_password"; 
flush privileges;
quit;
vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 英文输入环境下,敲 i 键,进入插入模式
#上下左右键移动光标,确保 bind-address = 127.0.0.1没有被注释掉
#英文输入环境下,敲Esc键,输入:wq 保存退出

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

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

mysql -u root -p 
#新密码
mysql>

问题解决

posted @ 2022-12-05 16:23  特洛伊-Micro  阅读(250)  评论(0编辑  收藏  举报