Python3.7.2连不上Mysql 8.0的解决方案,亲测有效。

本人最近在做python课设,要用到mysql数据库,本来看菜鸟教程的操作,连接mysql数据库,结果报了“this authentication plugin is not supported”的错误,然后查看网上各种解决方案,但是都一样的,通过各种方式修改密码,但是并不奏效,没什么用,话不多说,上教程:

首先安装python的mysql包:

pip install pymysql

7b4344b8e4fc4a7fa158476d1428b425.png

一定要看到Successfully install 才行!安装好可以运行 pip list 看看:看有没有PyMySQL的包

6f8ce5876e28497b9a0f5a13c0c60229.png

然后找到你的MySQL的安装目录:一定是bin目录下:

2669ee81eb0c4b748522e68451cafebf.png

然后在该栏输入cmd:cmd打开后,输入        mysql -u root -p,再输入你的数据库密码:登录到数据库;

3e9ec0e473f0487db75dd33093e18132.png

运行语句如下:其中123456是你的数据库密码!

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

 

 

 

 

这个SQL语句是什么意思呢?就是更换了root密码的认证方式解决的,新版mysql使用的caching_sha2_password,换成mysql_native_password。不报错即为成功

4ed17d290072436581264c222047cb39.png

然后就是用python连接数据库查询了。

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.Connect(
  host='localhost',#你的数据库地址,或者用127.0.0.1
  port=3306,    #端口号
  user='root',    #数据库用户名
  passwd='123456',#数据库密码
  db='test',        #test为数据库名
  charset='utf8')#字符编码为utf-8
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
# 定义要执行的SQL语句
sql = 'SELECT * FROM `my_jdbctest`;'
# 执行SQL语句
cursor.execute(sql)
#打印执行结果
print(cursor.fetchall())
# 关闭光标对象
cursor.close()
# 关闭数据库连接
conn.close()

数据库中的表:

92f25f2c3d744ecbba7dc80cec0b82a7.png

 

运行python查询后的结果:

1eb01b0c4bb845c0a085a5276355b958.png

查询结果显示不报错,接连成功,完毕。

 

 

 

 

 

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小白不会debug

需要源码打个赏呗~

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

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

打赏作者

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

抵扣说明:

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

余额充值