在学习廖老师课程之一——用Python链接Mysqlhtml
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)python
5.7之后的版本my.ini配置文件的目录发生了改变
放在了C:\ProgramData\MySQL\MySQL Server 8.0之中
用Notepad打开后,在[mysqld]下加入skip-grant-tables
,保存退出mysql
进入cmd命令行,前后输入linux
net stop mysql net start mysql
(若是拒绝访问的话请以管理员身份运行cmd,文末参考资料有教程)sql
这时cmd中输入mysql -u root -p
就不须要密码登陆了,出现password直接回车进入
但操做会受到限制,由于没有权限数据库
1.进入mysql数据库:学习
mysql>use mysql;
2.为root用户设置新密码ui
mysql> update user set password=password("这里写新密码") where user="root"
3.刷新数据库.net
mysql>flush privileges;
4.退出mysql命令行
mysql> quit
把刚才加入的“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...