Python3不在支出MySQLdb了。请使用PyMySQL.
PyMySQL 安装
$ git clone https://github.com/PyMySQL/PyMySQL
$ cd PyMySQL/
$ python3 setup.py install
PyMySQL 使用
import pymysql
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
passwd='test',
db='dbname')
cur = conn.cursor()
cur.execute("SELECT * FROM user")
for r in cur.fetchall():
print(r)
#cur.close()
conn.close()
这段程序有两个对象:连接对象( conn)和光标对象( cur)。连接 / 光标模式是数据库编程中常用的模式,不过刚刚接触数据库的时候,有些用户很难区分两种模式的不同。 连接模式除了要连接数据库之外,还要发送数据库信息,处理回滚操作(当一个查询或一组查询被中断时,数据库需要回到初始状态,一般用事务控制手段实现状态回滚),创建新的光标对象,等等。
而一个连接可以有很多个光标。 一个光标跟踪一种状态( state)信息,比如跟踪数据库的使用状态。如果你有多个数据库,且需要向所有数据库写内容,就需要多个光标来处理。光标还会包含最后一次查询执行的结果。 通过调用光标函数,比如 cur.fetchone(),可以获取查询结果。
用完光标和连接之后, 千万记得把它们关闭。如果不关闭就会导致连接泄漏( connectionleak), 造成一种未关闭连接现象, 即连接已经不再使用,但是数据库却不能关闭,因为数据库不能确定你还要不要继续使用它。 这种现象会一直耗费数据库的资源,所以用完数据库之后记得关闭连接!