mysql-connector-python 使用,【转】使用mysql-connector-python

最近在寻找一个支持python访问mysql数据库的包,并希望能够支持连接池功能,首先想到的是mysql-python加DButils来实现。但是安装过程中发现mysql-python依赖了libmysqlclient-dev的包,由于开发使用virtualenv虚拟环境,而直接使用pip安装却找不到libclientmysql-dev的包,又不想将它安装在实际环境中,于是转而找到了mysql-connector-python来使用。

mysql-connector-python有以下几个优点:1,它由mysql官方提供,且不依赖任何其它包安装之后就可以直接使用,符合virtualenv环境下使用;2,它支持连接池功能,使用方法简单。

安装

下载 Connector/Python

2.1.3 ,选择:Platform

Independent

tar -zxvf

mysql-connector-python-2.1.3.tar.gz

cd

mysql-connector-python-2.1.3/

python

setup.py install

使用

使用过程也非常简单:

1,建立连接

import mysql.connector

conn=mysql.connector.connect(host=”127.0.0.1″,user=”test”,password=”1234″)

该命令会返回一个mysql连接,如果要使用连接池功能可以多指定一个参数:pool_size或者pool_name

conn=mysql.connector.connect(host=”127.0.0.1″,user=”test”,password=”1234″,pool_size=10)

该命令会从连接池中分配一个连接使用。

2,执行

cur=conn.cursor()

cur.execute(“show databases”)

cur.fetchall()

3,关闭连接

conn.close()

如果conn是直接新建的连接则它会被关闭,如果是从线程池中分配一个连接则会被归还给连接池

4,关于游标

mysql-python支持两种类型的游标:1.cursor,2,sscursor。根据文档介绍sscursor是server-side游标,但实际不是的,mysql本身是不支持server-side游标。sscursor实际是一个non_buffered

cursor。而cursor是一个buffered cursor

mysql-connector-python正好相反,它默认使用的是non_buffered cursor,创建buffered

cursor时需要显示指定参数。

创建non_buffered cursor:

cur=conn.cursor()

创建buffered cursor

cur=conn.cursor(buffered=True)

buffrered cursor与non_buffered cursor的区别见[2]

mysql-connector-python正在模拟实现server-side

cursor[1],实现办法是将查询结果集存放在server端的一个临时表中,客户端调用 fetch方法时从临时表中返回结果。

相关阅读:

[1]

http://geert.vanderkelen.org/simulating-server-side-cursors-with-mysql-connectorpython/

[2]

http://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursorbuffered.html

你可能感兴趣的:(使用)