RedHat Linux 下, 关于 python 2/3 不支持 MySQLdb 但支持 PyMySQL
MySQLdb and PyMySQL
使用python连接mysql,是需要三方包的,目前主流的方式就是pymysql 和 mysqlclient(也就是Python3版本的MySQLdb)。
那么,我们应该如何选择呢?首先,需要了解下这两个包的大概。
pymysql
- 纯Python实现的,安装简单(直接pip安装, pip install PyMySQL);
- 由于纯Python实现的,可以很好的跟gevent框架结合
- 官方参考
https://pypi.org/project/PyMySQL/
mysqlclient (MySQLdb)
- 是一个C扩展模块,编译安装可能会导致报各种错误,明显没有pymysql方便
- 速度快;
- 官方参考
https://pypi.org/project/mysqlclient/
实际应用场景
如果对速度的要求不高,使用 pymysql 是一个比较容易的选择,pip install PyMySQL,可以轻松地安装在 python 2/3 环境中。
安装完成后,可以通过如下代码,连接 mysql 数据库。
import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="db_user", password="db_password", database="db_name")
cursor = db.cursor()
sql = '''select * from table_name'''
cursor.execute(sql)