當前位置:
首頁 > 最新 > Python調用MySQL模塊初試

Python調用MySQL模塊初試

學Python喊了很長時間了,總是因為各種各樣的理由擱置,昨天想起來前同事推薦過一本Python的書《Python核心編程》第二版,就火速買了一本,Python的學習也算是個開始了。

當然了,我學習還是蠻浮躁的,總是喜歡循序漸進,深入淺出那種,希望短時間的學習能夠看到成效,比如做出幾個demo,寫出幾個演算法之類的。

所以我把書先放下,換了個思路來想,如果我學習一門語言,怎麼樣會和目前的工作結合起來更多呢,bingo,那就調用MySQL吧。

其實mysql模塊有點類似於JDBC的一種角色,提供了訪問資料庫的一個介面,通過調用相應的介面來訪問和操作資料庫。那麼這個模塊就相當於一個jdbc的jar包一般,我們就需要做相應的配置,在Linux裡面我們就下載安裝即可。

下載的鏈接是:https://pypi.python.org/pypi/MySQL-python/

目前最新的版本是1.2.5,我們選擇源碼版本,在Linux下安裝。

其實安裝很簡單,就是一個python setup.py install即可。

但是實際操作的時候還是有一點問題。

第一個是提示mysql_config不存在,這個主要就是環境變數中訪問不到,我們配置一下即可,比如添加軟鏈接。

ln -s /usr/local/mysql_5.7/bin/mysql_config /usr/bin/mysql_config

然後繼續調用下面的命令。

python setup.py install

這次的錯誤有點奇怪,看起來是gcc的過程報錯了,找不到兩個文件。

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Dversion_info=(1,2,5, final ,1) -D__version__=1.2.5 -I/usr/local/mysql_5.7/include -I/usr/include/python2.6 -c _mysql.c -o build/temp.linux-x86_64-2.6/_mysql.o

_mysql.c:29:20: error: Python.h: No such file or directory

_mysql.c:40:26: error: structmember.h: No such file or directory

_mysql.c:74: error: expected 『=』, 『,』, 『;』, 『asm』 or 『__attribute__』 before 『*』 token

_mysql.c:75: error: expected 『=』, 『,』, 『;』, 『asm』 or 『__attribute__』 before 『*』 token

這個可以通過安裝軟體包python-devel來解決。

yum install python-devel

安裝好之後,就是做一個基本的驗證,看看模塊是否可以正常的載入。

當然還是有點曲折,報錯了。

>>> import MySQLdb

/usr/lib64/python2.6/site-packages/MySQL_python-1.2.5-py2.6-linux-x86_64.egg/_mysql.py:3: UserWarning: Module _mysql was already imported from /usr/lib64/python2.6/site-packages/MySQL_python-1.2.5-py2.6-linux-x86_64.egg/_mysql.pyc, but /U01/soft1/soft/MySQL-python-1.2.5 is being added to sys.path

Traceback (most recent call last):

File "", line 1, in

File "MySQLdb/__init__.py", line 19, in

import _mysql

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

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

ImportError: libmysqlclient.so.20: cannot open shared object file: No such file or directory

>>>

這個錯誤還是這個鏈接訪問不了,我們重新配置一下。

ln -s /usr/local/mysql_5.7/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20

再次嘗試載入模塊,如下的方式說明就是成功了。

>>> import MySQLdb

>>>

接下來就是調用MySQL了。

就簡單些一個調用的腳本,連接到資料庫然後創建表,插入數據,刪除,退出。

#coding=utf-8

import MySQLdb

conn = MySQLdb.connect(host= 127.0.0.1 ,port=22804,user= root , passwd= ,db = test ,)

cur = conn.cursor()

#創建數據表

cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")

#插入一條數據

cur.execute("insert into student values( 2 , Tom , xxxx , 9 )")

#修改查詢條件的數據

cur.execute("update student set class= xxxx where name = Tom ")

#刪除查詢條件的數據

cur.execute("delete from student where age= 9 ")

cur.close()

conn.commit()

conn.close()


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

如何使用Python Impyla客戶端連接Hive和Impala
Python高薪系統學習班,機不可失失不再來
最全Pycharm使用教程-(三)
最全Pycharm使用教程-(二)
最全Pycharm使用教程-(一)

TAG:Python |