本人最近在做python课设,要用到mysql数据库,本来看菜鸟教程的操作,连接mysql数据库,结果报了“this authentication plugin is not supported”的错误,然后查看网上各种解决方案,但是都一样的,通过各种方式修改密码,但是并不奏效,没什么用,话不多说,上教程:
首先安装python的mysql包:
pip install pymysql
一定要看到Successfully install 才行!安装好可以运行 pip list 看看:看有没有PyMySQL的包
然后找到你的MySQL的安装目录:一定是bin目录下:
然后在该栏输入cmd:cmd打开后,输入 mysql -u root -p,再输入你的数据库密码:登录到数据库;
运行语句如下:其中123456是你的数据库密码!
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
这个SQL语句是什么意思呢?就是更换了root密码的认证方式解决的,新版mysql使用的caching_sha2_password,换成mysql_native_password。不报错即为成功。
然后就是用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()
数据库中的表:
运行python查询后的结果:
查询结果显示不报错,接连成功,完毕。
更多推荐
Python3.7.2连不上Mysql 8.0的解决方案,亲测有效。
发布评论