python3.6连接mysql8.0

python 3.6无法连接到mysql(8.0)

新手入门python基础教程中用mysql-connector连接数据库

菜鸟教程中代码:

import mysql.connector
 
mydb = mysql.connector.connect(
  host="localhost",       # 数据库主机地址
  user="yourusername",    # 数据库用户名
  passwd="yourpassword"   # 数据库密码
)
 
print(mydb)

运行出现错误:
“Authentication plugin ‘{0}’ is not supported”.format(plugin_name))
mysql.connector.errors.NotSupportedError: Authentication plugin ‘caching_sha2_password’ is not supported

解决方法:

1、在网上搜索到原因是 mysql新版本(8.0以上)将root用户使用的plugin更新成caching_sha2_password。
登录到mysql,输入命令:
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的root密码’;
FLUSH PRIVILEGES; #刷新权限
2、直接换别的库,PyMySQL
它是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
python3.6连接mysql8.0_第1张图片

import pymysql
db = pymysql.connect(“localhost”,“root”,你的密码",“TESTDB” )
cursor = db.cursor() # 使用 execute() 方法执行 SQL 查询
cursor.execute(“SELECT VERSION()”)
data = cursor.fetchone()
print ("Database version : %s " % data)
db.close()
运行正确

你可能感兴趣的:(python入门)