MySQL-connector

关于在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而安装失败时
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值