安装MySQLdb库
该库的import语句如下所示:
import MySQLdb
如何使用pip安装呢?非常麻烦,网络上很多错误或者介绍不完整。经过一番搜索才找到该库的github项目地址,README文档完整介绍了安装方式:https://github.com/PyMySQL/mysqlclient/blob/main/README.md
一. 安装方法
安装时用的库名和导包时用的库名不一样。
1.1 Windows
# 尤其注意这里名字
$ pip install mysqlclient
作者在README中说到了,在windows上安装非常困难,需要很多的第三方库支持。很可能失败。
1.2 macOS
$ brew install mysql pkg-config
$ pip install mysqlclient
如果不想安装mysql server,可以使用该方法代替:
$ # Assume you are activating Python 3 venv
$ brew install mysql-client pkg-config
$ export PKG_CONFIG_PATH="$(brew --prefix)/opt/mysql-client/lib/pkgconfig"
$ pip install mysqlclient
1.3 Linux
Linux的支持也是无语…作者说了开发环境不同,安装可能碰到错误,需要用户自己寻求解决方法,不要提issue。首先Linux需要先安装python3和mysql相关头文件和第三方依赖库。
$ sudo apt-get install python3-dev default-libmysqlclient-dev build-essential pkg-config # Debian / Ubuntu
% sudo yum install python3-devel mysql-devel pkgconfig # Red Hat / CentOS
$ pip install mysqlclient
该第三方库安装时也是有一些奇怪,有时候一些debian版本无法直接使用pip install mysqlclient
安装,反而是使用apt install python3-mysqldb
进行安装。
sudo apt update
sudo apt install python3-mysqldb
二. 基本用法
2.1 _mysql
官方文档中描述了,MySQLdb._mysql
是一个较为底层的模块,_mysql
的接口都可以和MySQL C API
各种接口对应上。但是作者建议不要直接使用_mysql模块, 而是使用MySQLdb的其它接口。
用法示例:
from MySQLdb import _mysql
db=_mysql.connect(host="localhost",user="joebob", password="moonpie",database="thangs")
db.query("""SELECT spam, eggs, sausage FROM breakfast
WHERE price < 5""")
r=db.store_result()
# ...or...
r=db.use_result()
r.fetch_row()
2.2 直接使用MySQLdb的接口
import MySQLdb
db=MySQLdb.connect(host="localhost",user="joebob",password="moonpie",database="thangs")
c=db.cursor()
max_price=5
c.execute("""SELECT spam, eggs, sausage FROM breakfast
WHERE price < %s""", (max_price,))
c.fetchone()
使用上也是非常简单,需要注意的是:**要执行SQL,就一定需要创建cursor对象,db.cursor()的作用是创建一个cursor对象,不要和MySQL支持的cursor搞混,这俩不是一个东西…
这也是我想吐槽的点,为什么叫做游标对象…很容易和MySQL支持的游标搞混,MySQL支持的游标,只能读数据,只能朝一个方向前进。而这里python的cursor对象则是用于执行SQL。
参考文档
- https://mysqlclient.readthedocs.io/user_guide.html#mysqldb-mysql