溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python怎么調(diào)用MySQL模塊

發(fā)布時間:2021-12-04 17:11:53 來源:億速云 閱讀:165 作者:柒染 欄目:互聯(lián)網(wǎng)科技

Python怎么調(diào)用MySQL模塊,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

調(diào)用MySQL

  其實mysql模塊有點類似于JDBC的一種角色,提供了訪問數(shù)據(jù)庫的一個接口,通過調(diào)用相應(yīng)的接口來訪問和操作數(shù)據(jù)庫。那么這個模塊就相當于一個jdbc的jar包一般,我們就需要做相應(yīng)的配置,在Linux里面我們就下載安裝即可。

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

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

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

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

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

ln -s  /usr/local/mysql_5.7/bin/mysql_config /usr/bin/mysql_config
然后繼續(xù)調(diào)用下面的命令。
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 ‘=’, ‘,’, ‘;’, ‘a(chǎn)sm’ or ‘__attribute__’ before ‘*’ token
_mysql.c:75: error: expected ‘=’, ‘,’, ‘;’, ‘a(chǎn)sm’ 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 "<stdin>", line 1, in <module>
  File "MySQLdb/__init__.py", line 19, in <module>
    import _mysql
  File "build/bdist.linux-x86_64/egg/_mysql.py", line 7, in <module>
  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
>>>
  接下來就是調(diào)用MySQL了。

   就簡單些一個調(diào)用的腳本,連接到數(shù)據(jù)庫然后創(chuàng)建表,插入數(shù)據(jù),刪除,退出。

#coding=utf-8
import MySQLdb

conn = MySQLdb.connect(host='127.0.0.1',port=22804,user='root', passwd='',db ='test',)
cur = conn.cursor()
#創(chuàng)建數(shù)據(jù)表
cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")
#插入一條數(shù)據(jù)
cur.execute("insert into student values('2','Tom','xxxx','9')")
#修改查詢條件的數(shù)據(jù)
cur.execute("update student set class='xxxx' where name = 'Tom'")
#刪除查詢條件的數(shù)據(jù)
cur.execute("delete from student where age='9'")

cur.close()
conn.commit()
conn.close()

看完上述內(nèi)容,你們掌握Python怎么調(diào)用MySQL模塊的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI