[Note] 在 ubuntu 上用 python 連接 mySQL

參考: https://www.opencli.com/perl/python-install-mysqldb

和 Java, C 引入 library 的方法不同,
對 python 而言, 所使用的套件需要先安裝 (如這篇文章),
或是, 將 make 好後的檔案放入指定路徑 (如 libsvm 的方法),

在這篇文章中, 使用 pip 的方式, 安裝連接 mySQL 的套件,
因此, 第一個步驟, 就是安裝或是升級 pip:

$ apt-get install python-pip
$ pip install -U pip


如果在升級 pip 後, 出現以下錯誤:
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main


需要修改 /usr/bin/pip 中的變數為:
from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())


接著, 安裝必要套件與 python 插件:

$ apt-get install python-dev libmysqlclient-dev
$ pip install MySQL-python


我們一樣寫一隻簡單的程式來操作 mySQL database,
參考自: http://www.runoob.com/python/python-mysql.html

import MySQLdb

db = MySQLdb.connect("localhost", "USERNAME", "PASSWORD", "DB_NAME", charset='utf8' )

cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print "Database version : %s " % data
db.close()


其中, localhost, USERNAME, PASSWORD, DB_NAME,
四個參數請按照 mySQL 的設定填入, 執行結果將顯示 mySQL 的版本號,
結果如下:
$ python mySQLtest.py
Database version : 5.7.26-0ubuntu0.16.04.1

留言

熱門文章

LTE筆記: RSRP, RSSI and RSRQ

[WiFi] WiFi 網路的識別: BSS, ESS, SSID, ESSID, BSSID

LTE筆記: 波束成型 (beamforming) 和天線陣列