日期:2014-05-16 浏览次数:21002 次
????先来一段MySQLdb(类似于mysql用于Java的连接Jar包)的幽默介绍:
??
Windows ....... I don't do Windows. However if someone provides me with a package for Windows, I'll make it available. Don't ask me for help with Windows because I can't help you.
?
?
? 哈哈,就连设计MySQLdb的大师级人物都对Windows颇有微词,言外之意就是我不提供Windows下的连接文件,哈哈~~
??不过迫于Windows广大客户的压力,MySQL官方还是发布了针对windows的Python连接文件,见附件:
? 下面介绍下在windows下如何利用Python连接MySQL
?? 1:安装windows下的连接文件(.exe格式)
?? 2:很重要的,从MySQL的安装目录下拷贝一个libmySQL.dll文件到Python目录的Lib\site-packages目录下.
????? 例如:我的机子上,就需要执行:
??????cp C:\Program Files\MySQL\MySQL Server 5.0\bin\libmySQL.dll?C:\Python25\Lib\site-packages\libmySQL.dll
??? 3:修改下MySQLdb目录(默认情况下,MySQLdb链接库会安装在Python的Lib\site-packages\目录下)的几个文件
?????? 第一个地方:
?????? 找到python2.6安装目录\Lib\site-packages\MySQLdb
?????? 把__init__.py
?????? from sets import ImmutableSet?
?????? class DBAPISet(ImmutableSet):
?????? 修改成:
?????? class DBAPISet(frozenset):
?????
????? 第二个地方:
?????? 找到python2.6安装目录\Lib\site-packages\MySQLdb
????? 把converters.py
????? from sets import BaseSet, Set
????? 这行删除
???
???? 第三个地方:
???? 依然这个converters.py文件
???? 把48行和128行的 Set 修改成小写的 set
???? 修改后如下:
???? line 48: return set([ i for i in s.split(',') if i ])
????? line 128: set: Set2Str,
?
?? 好了,经过以上步骤。你可以在命令行里连接MySQL了
??? 试着进入命令行,敲入命令import MySQLdb,没出错吗?恭喜你,你可以在命令行里输入命令连接MySQL了。
??
??? 但是如果想要在Eclipse的pydev插件里,连接MySQL的话,需要做额外两件事:
??? 1:进入windows\preference\Pydev\Interpreter-Python下,把MySQLdb的连接目录加入
???
?
?
?? 2:点开上图的Forced Builtins,强行将MySQLdb加入编译队列中
??
?
???
???? 3:好了大功告成了,你可以在Eclipse下做MySQL数据库方面的开发了。
???? 来一段程序示意下吧:
????
import MySQLdb conn=MySQLdb.connect(user='root',passwd='123456',db='test'); cur=conn.cursor(); cur.execute("select username,password, date_format(reg_date,'%Y-%m-%d %H-%i-%s') as date from reg_user"); for data in cur.fetchall(): print data; cur.close(); conn.commit(); conn.close();
?
?? 输出:
??
('chenwu', '1', '2011-04-22 21-12-44') ('yangliu', '2', '2011-04-22 21-12-50') ('test', 'love', '2011-04-22 21-52-29') ('test', 'joking', '2011-05-01 09-21-47') ('lloss', 'dsdfdd', '2011-05-01 09-38-14') ('test', '4563', '2011-05-01 17-00-22') ('dsss', 'ssss', '2011-05-01 17-02-05') ('dsss', 'ssss', '2011-05-01 17-02-20') ('fffss', 'ssss', '2011-05-01 17-08-03')
?
???