mac機上python操作mysql資料庫

來源:互聯網
上載者:User

標籤:mac   python mysql   traceback   

為了用DB-API編寫MySQL指令碼,必須確保已經安裝了MySQL。複製以下代碼,並執行:

import MySQLdb
如果執行後的輸出結果如下所示,意味著你沒有安裝 MySQLdb 模組:

Traceback (most recent call last):  File "./hello.py", line 3, in <module>    import MySQLdbImportError: No module named MySQLdb

可以訪問:https://pypi.python.org/pypi/MySQL-python從這裡可選擇適合您的平台的安裝包,分為先行編譯的二進位檔案和原始碼安裝包。

如果選擇二進位檔案發行版本的話,安裝過程基本安裝提示即可完成。如果從原始碼進行安裝的話,先下載源碼然後解壓縮,進入解壓縮後的目錄並執行:

python setup.py build

如果出現以下錯誤:

sh: mysql_config: command not foundTraceback (most recent call last):  File "setup.py", line 17, in <module>    metadata, options = get_config()  File "/Users/macbook/Downloads/MySQL-python-1.2.5/setup_posix.py", line 43, in get_config    libs = mysql_config("libs_r")  File "/Users/macbook/Downloads/MySQL-python-1.2.5/setup_posix.py", line 25, in mysql_config    raise EnvironmentError("%s not found" % (mysql_config.path,))EnvironmentError: mysql_config not found

則去掉mysql_config=XXX的注釋,並改成mysql_config = /usr/bin/mysql_config(以mysql_config檔案所在機器上的目錄為準,如果不知道其目錄,可以使用sudo find / -name mysql_config命令尋找)

完成該步驟之後可能仍然會出錯:

Traceback (most recent call last):  File "./hello.py", line 3, in <module>    import MySQLdb  File "build/bdist.macosx-10.10-intel/egg/MySQLdb/__init__.py", line 19, in <module>  File "build/bdist.macosx-10.10-intel/egg/_mysql.py", line 7, in <module>  File "build/bdist.macosx-10.10-intel/egg/_mysql.py", line 6, in __bootstrap__ImportError: dlopen(/Users/macbook/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.10-intel.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib  Referenced from: /Users/macbook/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.10-intel.egg-tmp/_mysql.so  Reason: image not found

此時,需要執行命令

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

注意,該軟串連的實際目錄部分以自己機器上的目錄為準


測試代碼:

import MySQLdb# 開啟資料庫連接db = MySQLdb.connect("dburl","username","password","dbname" )# 使用cursor()方法擷取操作遊標 cursor = db.cursor()# 使用execute方法執行SQL語句cursor.execute("SELECT VERSION()")# 使用 fetchone() 方法擷取一條資料庫。data = cursor.fetchone()print "Database version : %s " % data# 關閉資料庫連接db.close()

執行結果:

Database version : 5.6.16-log 






mac機上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.