Python3连接MySQL,并解决cryptography安装失败问题

 

 

本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用。这里我们没使用 mysql-connector 来连接使用 MySQL, mysql-connector 是 MySQL 官方提供的驱动器。

PyMySQL介绍

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

Django中也可以使用PyMySQL连接MySQL数据库。

PyMySQL安装

#终端中安装pymysql
pip install pymysql

Pycharm连接数据库出现如下错误:

RuntimeError: cryptography is required for sha256_password or caching_sha2_password

解决办法:

安装cryptography

pip install cryptography

我在安装cryptography时报错如下:error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

那是因为缺少C++编译器,python3 是用 VC++ 14 编译的, python27 是 C++ 9 编译的, 安装 python3 的包需要编译的也是要 C++ 14 以上支持的。因为有些程序需要使用,没有C++接口会报错

按照错误提示去官网https://visualstudio.microsoft.com/visual-cpp-build-tools/ 下载Microsoft C++ 生成工具,

然后安装的时候,选择如下图,并修改安装位置(如果C盘不够大)

安装完成重启机器后。

再次执行pip install cryptography, 然后又报错了,如下:   error: command 'D:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.28.29333\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

然后我bing.com搜到https://www.jianshu.com/p/ba5ec1748a4e  ,修改了系统变量,添加了一个新的用户变量VCINSTALLDIR,把VC所在路径添加上

然后还提示我

You are using pip version 18.1, however version 20.3.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

于是我先执行python -m pip install --upgrade pip 更新了pip

然后再次执行pip install cryptography,终于成功!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

然后再次去执行py文件,如下:

import pymysql

name = input("Please input your name:")

# Connect to mysql from python by pymysql
conn = pymysql.connect(host="192.168.xxx.xxx", port=3306, user="root", password="xxxxxx", database="YOURDB")
cursor = conn.cursor() # get a cursor to wait for the input
sql = 'select * from YOURTB'
ret = cursor.execute(sql)
cursor.close()
conn.close()

if ret:
    print("Success")
else:
    print("Fail")
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值