资讯专栏INFORMATION COLUMN

ERROR 1045 (28000): Access denied for user 'r

lijy91 / 2730人阅读

摘要:问题描述在学习廖老师课程之一用连接在连接数据库时,有报错于是在下登录也出现了同样的错误,所以得出结论不是代码的问题,可能是配置环境的问题搜寻阵子后找到了解决方法配置为,解决方法一编辑文件以后的版本配置文件的目录发生了改变放在了之中用打开后,

问题描述

在学习廖老师课程之一——用Python连接Mysql

import mysql.connector
conn = mysql.connector.connect(
                  user="root", 
                  password="password",
                  database="test")

在连接数据库时,有Mysql报错:MySQL ERROR 1045 (28000): Access denied for user "root"@"localhost" (using password: YES)
于是在cmd下登录mysql也出现了同样的错误,所以得出结论:不是代码的问题,可能是配置环境的问题
搜寻阵子后找到了解决方法
(配置为window10,MySQL Server 8.0)

解决方法: 一.编辑my.ini文件

5.7以后的版本my.ini配置文件的目录发生了改变
放在了C:ProgramDataMySQLMySQL Server 8.0之中
用Notepad打开后,在[mysqld]下加入skip-grant-tables,保存退出

二.重启MySQL

进入cmd命令行,先后输入

net stop mysql
net start mysql

(如果拒绝访问的话请以管理员身份运行cmd,文末参考资料有教程)

三.登录

这时cmd中输入mysql -u root -p就不需要密码登录了,出现password直接回车进入
但操作会受到限制,因为没有权限

四.重设密码

1.进入mysql数据库:

mysql>use mysql;

2.为root用户设置新密码

mysql> update user set password=password("这里写新密码") where user="root"

3.刷新数据库

mysql>flush privileges;

4.退出mysql

mysql> quit
五.重新编辑my.ini

把刚才加入的“skip-grant-tables”去掉,再重启mysql

疑问与思考:

为什么重设密码后就能解决问题呢?
在网上搜索了许多几乎找到的只有解决方法
找到了以下几种主要原因仅供参考:
1.mysql.user表中没有信息
2.root用户没有密码

因为无法还原之前的情景,所以还是找不出具体的真正原因啊哈哈
望有大神指教

参考资料:

mysql ERROR 1045 (28000): Access denied for user解决方法:https://blog.csdn.net/hsg77/a...

why we need --skip-grant-tables in mysql to remove error 1045:access denied ?what does it really do?:
https://stackoverflow.com/que...

"net start mysql"启动MySQL服务报错,提示发生系统错误5解决方法:https://blog.csdn.net/yhj1992...

深入分析MySQL ERROR 1045 (28000):
https://www.linuxidc.com/Linu...

MySql常用命令:https://www.cnblogs.com/shenq...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42024.html

相关文章

发表评论

0条评论

lijy91

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<