之前一直C++连数据库,略显笨重,最近主题就是黑C++,python操作mysql还是比较方便的。
我用的windows32位,直接安装的编译好MySQLdb,下载地址http://www.codegood.com/downloads
import MySQLdb ok就安装成功了。
#coding=utf-8
#!/usr/bin/env python
import MySQLdb
conn = MySQLdb.connect(host='your ip',user='xxx',passwd='***')
cursor = conn.cursor()
count = cursor.execute("""show databases""")
print 'database num:%d' %count
for x in cursor:
print x
conn.select_db('test')
count = cursor.execute("select * from test")
print 'records num:%d' %count
result = cursor.fetchone()
print result
result = cursor.fetchmany(2)
for r in result:
print r
cursor.close()
开始遇到DeprecationWarning: the sets module is deprecated这个问题,参考http://blog.sina.com.cn/s/blog_70aa69580100oi41.html
解决办法:
找到Python26\lib\site-packages\MySQLdb下的__init__.py文件
1) 在文件中 "__init__", 注释掉:
from sets import ImmutableSet
class DBAPISet(ImmutableSet):
新增:
class DBAPISet(frozenset):
2) 在文件中"converters.py", 注释掉 from sets importBaseSet, Set 这一句话。
3) 在文件中"converters.py", 修改 "Set" 成为 "set" ( 只有两个地方需要修改):
大概 line 48: return Set([ i for i in s.split(',') if i ]) 改为 return set([ i for i in s.split(',') if i ])
找到Python26\lib\site-packages\MySQLdb下的__init__.py文件
1) 在文件中 "__init__", 注释掉:
from sets import ImmutableSet
class DBAPISet(ImmutableSet):
新增:
class DBAPISet(frozenset):
2) 在文件中"converters.py", 注释掉 from sets importBaseSet, Set 这一句话。
3) 在文件中"converters.py", 修改 "Set" 成为 "set" ( 只有两个地方需要修改):
大概 line 48: return Set([ i for i in s.split(',') if i ]) 改为 return set([ i for i in s.split(',') if i ])
大概 line 128: Set: Set2Str 改为 set: Set2Str