关于在vscode中安装python插件MySQL-connector,以及 mysql常见问题
1. 安装 基于mysql-8.4.4-winx64
- 链接: MySQL官网下载链接
- 解压后 把bin文件放入系统环境
- 去bin文件下找到
- 双击安装 依照流程安装到如下,MySQL7798是随意命名,但要记住
2、python安装Mysql-connector
- 家庭电脑可以忽略,在python的文件路径下打开powershell(Shift+右键),配置临时代理环境:
安装$Env:http_proxy="http://user:password@path:port"; $Env:https_proxy="http://user:password@path:port"
pip install mysql-connect
3、修改my.ini文件
- 由于早期版本mysql-connect为 mysql_native_password,8.0 版本后为caching_sha2_password,所以直接使用代码:
import mysql.connector from mysql.connector import Error print('jokwan') try: print('尝试连接到 MySQL 数据库') mydb = mysql.connector.connect( host="localhost", # 数据库主机地址 user="root", # 数据库用户名 passwd="123456" , # 数据库密码 auth_plugin='mysql_native_password' ) print('连接成功') print('jokwan') if mydb.is_connected(): print('成功连接到 MySQL 数据库') mycursor = mydb.cursor() # 检查数据库是否存在 mycursor.execute("SHOW DATABASES LIKE 'runoob_db'") result = mycursor.fetchone() if result: print("数据库 runoob_db 已存在") else: mycursor.execute("CREATE DATABASE runoob_db") print('成功创建数据库 runoob_db') except Error as e: print(f"连接失败或创建数据库失败: {e}") except Exception as e: print(f"发生了一个未捕获的异常: {e}") finally: if mydb.is_connected(): mycursor.close() mydb.close() print('MySQL 连接已关闭')
就会报错如下:
Python MySQL8.0 错误:authentication plugin 'calling_sha2_password' is not supported.
解决方法:
-
1、找到安装时数据保存路径,找到my.ini配置文件添加如下
-
2、使用win+R 输入service.msc,进入服务界面,找到mysql重启
-
3、使用WIN+R输入cmd,进入命令行,依次输入如下 ,(123456是密码,可以自定义)
- 进入mysql
mysql -u root -p (mysql -u jokwan -p)
- 输入查看mysql有多少用户
SELECT User, Host FROM mysql.user;
- 针对root用户
use mysql; select plugin,authentication_string from user; ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; -- 更新一下用户的密码加密方式为之前版本的方式 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; -- 刷新权限 FLUSH PRIVILEGES;
- 针对 % 类型用户,如jokwan,把‘root’@‘localhost’-----》‘jokwan’@‘%’
use mysql; select plugin,authentication_string from user; ALTER USER 'jokwan'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; -- 更新一下用户的密码加密方式为之前版本的方式 ALTER USER 'jokwan'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; -- 刷新权限 FLUSH PRIVILEGES;
-
4、重复步骤 2
- 再次执行代码,即可
4、常见问题
- 1、使用mysql-connect-python,无法抛出异常,
- 2、安装的失败时候,重新安装会出现window service Name 重复,要删除重复
链接: 彻底删除mysql - 3、删除任务列表的安装重复mysql库,出现重安装,显示NUll而安装失败时