python操作mysql

來源:互聯網
上載者:User

標籤:python   mysql   

首先需要安裝zlib、zlib-devl、python和python-devel。

yum install zlib zlib-devel


安裝使用包

wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz

獲得串連串連mysql的包

wget http://downloads.sourceforge.net/project/mysql-python/mysql-python/1.2.2/MySQL-python-1.2.2.tar.gz

可以選擇高版本1.2.3就不會遇到錯誤1和錯誤2

wget http://downloads.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz


具體操作命令:

# tar zxvf setuptools-0.6c11.tar.gz

# cd setuptools-0.6c11

# python setup.py build

# python setup.py install


# tar zxvf MySQL-python-1.2.2.tar.gz

# cd MySQL-python-1.2.2

# python setup.py build

# python setup.py install


測試指令碼

#!/usr/bin/env python

#-*- coding: utf-8 -*-

import os,sys

import MySQLdb

try:

db = MySQLdb.connect(host = ‘localhost‘, user=‘root‘ passwd = ‘root‘, db = ‘mysql‘)

except MySQLdb.ERROR,e:

print "Error %d:%s"%(e.args[0],e.args[1])

exit(1)

cursor = db.cursor()

cursor.execute( ‘select * from user‘)

result_set=cursor.fetchall()

print result_set

cursor.close()

db.close()



錯誤1.

>>> import MySQLdb

Traceback (most recent call last):

File "", line 1, in

File "build/bdist.linux-i686/egg/MySQLdb/__init__.py", line 19, in

File "build/bdist.linux-i686/egg/_mysql.py", line 7, in

File "build/bdist.linux-i686/egg/_mysql.py", line 6, in __bootstrap__

ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory


解決方案

首先尋找模組

# find / -name libmysqlclient_r.so.16

/usr/local/src/mysql-5.1.44-linux-i686-glibc23/lib/libmysqlclient_r.so.16

/usr/local/mysql/lib/libmysqlclient_r.so.16

將模組路徑加入動態連結程式庫設定為共用

vim /etc/ld.so.conf

加入:libmysqlclient_r.so.16所在目錄

ldconfig -v


錯誤2.

>>> import MySQLdb

/usr/local/lib/python2.6/site-packages/MySQL_python-1.2.2-py2.6-linux-i686.egg/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated


解決方案

進入./MySQL-python-1.2.2/MySQLdb目錄中

1) 在檔案 "__init__" 中將:

from sets import ImmutableSet

class DBAPISet(ImmutableSet):

替換為

class DBAPISet(frozenset)

3) 在檔案 "converters.py", 把 "Set" 改為 "set"

將return set([ i for i in s.split(‘,‘) if i ])中"Set" 改為 "set"

將set: Set2Str,中"Set" 改為 "set"

2) 在檔案 "converters.py"中移除:

from sets import BaseSet, Set

修改完畢後在做編譯和安裝。


錯誤3.

_mysql.c:36:23: 錯誤:my_config.h:沒有那個檔案或目錄


解決方案

設定include 標頭檔路徑即可,如下

export C_INCLUDE_PATH=/usr/local/mysql/include/


錯誤4.

>>> cur.execute(‘select * from user‘)

Segmentation fault


解決方案

將語句寫為“select user,host from user”可以正常查出。

在64位的伺服器上安裝發現此問題。不知道為什麼會有段錯誤。是否所有64位服務

器均有此問題,我沒有測試


本文出自 “7727197” 部落格,請務必保留此出處http://7737197.blog.51cto.com/7727197/1663093

python操作mysql

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.