python2.6连接mysql5.4

上一篇 / 下一篇  2011-05-04 15:05:47 / 个人分类:python

参考“windows python2.6 django 开发环境搭建”
网址:http://blog.csdn.net/dskit/archive/2009/12/30/5106701.aspx

1.下载MySQL-python-1.2.2.win32-py2.6.exe
下载地址:http://home.netimperia.com/files/misc/MySQL-python-1.2.2.win32-py2.6.exe
参见:http://sourceforge.net/forum/forum.php?thread_id=2316047&forum_id=70460
安装到python的\Lib\site-packages目录下
2.下载:
libguide40.dll.zip(77.3 KB)
libmmd.dll.zip(169 KB)
libmySQL.dll.zip(861 KB)
将以上3个文件解压后,复制到python的\Lib\site-packages目录下,这3个文件在文档后的附件中。

3.修改python的\lib\site-packages\MySQLdb\目录下的__init__.py和converters.py文件,具体修改如下:
1) __init__.py 文件

   from sets import ImmutableSet
   class DBAPISet(ImmutableSet): 
修改为:
class DBAPISet(frozenset) :
2)converters.py文件,去除:
from sets import BaseSet, Set
3)converters.py文件,将 Set 修改为 set (只有两处):
45 行: return set([ i for i in s.split(',') if i ])
129行: set: Set2Str,
注:行号可能根据安装的mysql-python-XX.exe的版本不同而有所不同。

一段简单的连接数据库程序:
'''
Created on 2011-5-4

@author: kortide
'''
# -*- coding: utf-8 -*-

# encoding=gbk
import sys
import MySQLdb

reload(sys)
sys.setdefaultencoding('utf-8')

def getdata ():
    try:
        conn = MySQLdb.connect(host='192.168.4.20', user='root', passwd='wl', db='agent', port=3306, charset='utf8')
        try:
            cur = conn.cursor()
            sql = r'select * from members'
            cur.execute(sql)
            allPerson = cur.fetchall()
        finally:
            cur.close()
            conn.close()
    except Exception, e:
        print 'abc', e
        return

    for rec in allPerson:
        print rec[0],rec[1]

if __name__ == '__main__':
    getdata()

注:如果没有第二步的复制3个文件,可能会遇到如下错误:
1.ImportError: DLL load failed: 找不到指定的模块。
—————————————————————————————————-
D:\Program Files\Python2.6>python
Python 2.6.1 (r261:67517, Dec  4 2008, 16:51:00) [MSC v.1500 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File “<stdin>”, line 1, in <module>
  File “D:\Program Files\Python2.6\Lib\site-packages\MySQLdb\__init__.py”, line 19, in <module>

    import _mysql
ImportError: DLL load failed: 找不到指定的模块。
—————————————————————————————————-
解决方法:下载libmmd.dll(附件)和libguide40.dll(附件)两个dll文件并复制到python安装目录的Lib\site-packages下。
参见:http://sourceforge.net/forum/message.php?msg_id=5613887

2.ImportError: DLL load failed: 找不到指定的模块。
—————————————————————————————————-
D:\Program Files\Python2.6>python
Python 2.6 (r26:66721, Oct  2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import MySQLdb
D:\Program Files\Python2.6\lib\site-packages\MySQLdb\__init__.py:34: DeprecationWarning: the sets module is deprecated
  from sets import ImmutableSet
—————————————————————————————————-

TAG:

 

评分:0

我来说两句

Open Toolbar