Access denied for user ‘root‘@‘localhost‘ (using password:YES)解决方法

Access denied for user ‘root’@‘localhost’ (using password:YES)解决方方案

问题描述

出现这个报错语句的一般原因是输入了错误的密码,也有可能是是root帐户默认不开放远程访问权限。在这里插入图片描述
相关的解决方法是重新设置密码和修改root用户的远程访问权限。

解决方法:

修改密码方法一:

1、打开MySQL目录下的my.ini文件,把以下命令添加进[mysqld]里面,保存并关闭文件。(MySQL8.0路径为:C:\ProgramData\MySQL\MySQL Server 8.0下面)

1、skip-grant-tables
在这里插入图片描述在这里插入图片描述2、停止MySQL服务–右击停止
在这里插入图片描述

3、通过命令行进入MySQL的bin目录,输入“mysql -u root -p”(不输入密码),回车即可进入数据库。
在这里插入图片描述

在这里插入图片描述

4、执行“use mysql;”,使用mysql数据库。

use mysql;

5、执行

update user set password=PASSWORD(“123456”) where user=‘root’;(修改root的密码)

在这里插入图片描述如果报错说明原来是新版本的mysql数据库下已经没有password这个字段了,password字段正式改成了authentication_string字段,执行以下命令

update MySQL.user set authentication_string=password(‘root’) where user=‘root’ ;(修改root的密码)

6、打开MySQL目录下的my.ini文件,删除“skip-grant-tables”,保存并关闭文件。
7、重启MySQL服务。
在命令行中输入“mysql -u root -p 123456”,即可成功连接数据库。

修改密码方法二:

由于我使用的是Windows系统,所以方法也是Windows系统的修改方法:
1、开始 → 搜索栏里面输入cmd → 右键cmd.exe选择以管理员的身份运行(亦可以在C:\Windows\System32目录下找到这个cmd.exe,右键,以管理员身份运行)

2、输入 net stop mysql 停止MySQL服务

3、输入命令行来到mysql的bin目录下,输入下列粗体命令

D:\MySQL\bin> mysqld --defaults-file=“D:\ MySQL\my.ini” --console --skip-grant-tables

等一下,显示出以下结果说明MySQL启动:

170215 22:26:09 [警告] 语法“–log”已弃用,并将在 MySQL 7.0 中删除。 请改用“–general_log”/“–general_log_file”。
170215 22:26:09 [警告] 语法“–log_slow_queries”已弃用,并且 将在 MySQL 7.0 中删除。 请使用’–slow_query_log’/‘--  改为 Slow_query_log_file’。
170215 22:26:09 [警告] 语法 ‘–log’ 已弃用,并将在 MySQL 7.0 中删除。 请用 改为“–general_log”/“–general_log_file”。
170215 22:26:09 [警告] 语法“–log_slow_queries”已弃用,并且 将在 MySQL 7.0 中删除。 请用 ‘–slow_query_log’/‘–slow_query_log_file’ 代替。
170215 22:26:09 [错误] MySQL 不再支持更新日志 5.0及以上版本。 它被二进制日志取代。 现在开始 MySQL 用 --log-bin=‘’ 代替。
170215 22:26:09 InnoDB:已启动; 日志序列号 0 324221
170215 22:26:09 [注意] mysqld: 准备连接。版本: ‘5.1.33-community-log’套接字:’'端口:3306 MySQL社区服务器 (通用公共许可证)

4、再以管理员的身份打开一个cmd.exe,输入命令行来到mysql的bin目录下,输入: mysql -uroot mysql

5、进入mysql之后,输入命令行修改密码:

mysql> 更新用户集authentication_string=password(‘123456’) where user=‘root’;

6、刷新权限:mysql> flush privileges;

7、退出mysql: mysql> quit;

8、关闭MySQL:D:\MySQL\bin> mysqladmin shutdown(出现错误,则:mysqladmin -uroot -p shutdown 然后输入新密码)

9、至此修改密码完成,可以输入命令行: net start mysql 启动MySQL服务, mysql -uroot -p ,输入密码就可以进入mysql了。

修改权限方法三:

此报错的原因则是没有开通权限
1、打开cmd命令面板
2、输入 mysql -u root -p,之后输入密码(数据库root账户的密码)
3、开通权限
全部开放

GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;

指定ip开放

GRANT ALL PRIVILEGES ON . TO ‘root’@‘192.168.12.1’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;

4、刷新权限 flush privileges;5、重启MySQL net stop mysql, net start mysql在这里插入图片描述到此这篇关于解决MySQL登录报错1045-Access denied for user ‘root‘@‘‘(using password:YES)的文章就介绍到这了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炫彩@之星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值