import mysql.connector
c = mysql.connector.connect(user='root', password='1234',database='employees')
#資料庫處理
c.close()
一個標準的資料庫操作大概如上,先以connect()連結並取得資料庫物件,待操作後呼叫close()來關閉與資料庫的連線。
其中connect()內的參數有21種之多(文後有介紹),常用的大概就是帳號、密碼、選取資料庫、資料庫HOST、PORT這五種。但如果你需要使用大量的參數,可以參考以下的連結方式:
import mysql.connector
config = {
'user': 'root',
'password': '1234',
'host': '127.0.0.1',
'database': 'employees',
'autocommit': True,
'raise_on_warnings': True,
}
c = mysql.connector.connect(**config)
#資料庫處理
c.close()
如此可以將設定部分都移到檔頭甚至是另外的檔案方便做處理。
如果我們臨時想做切換帳號的動作呢?最直覺的想法應該是close原來的連線後再重新建立新的,不過可以不用這麼麻煩。直接呼叫config(參數如同connect())後再呼叫reconnect()重新連線即可
import mysql.connector
c = mysql.connector.connect(user='joe', database='test')
# 以'joe'帳號登入
c.config(user='jane')
c.reconnect()
# 現在改以'jane'帳號登入
如果只是想改變所選擇的資料庫比較簡單:
c.database = 'teacher'
#改為讀取teacher資料庫
print(c.database)
#此結果會顯示出目前所選取的資料庫為何
其他如帳號、連線位置等皆可以同樣方式做查詢,但無法修改(修改一定得重新連線)
如果我們想偵測是否有與MySQL做連結,可以使用is_connect(),結果會回傳True/False
mysql.connector.connect()參數詳解
有空白的就是我不懂是甚麼意思XD,基本上會用到的也就那些。另外前三個後面有括弧,那個是套件設計者佛心來的,為了讓這個套件可以相容其他同樣也是Mysql連結python設計的,所以參數名互換是可以的。
[http://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html]
參數名 | 預設值 | 說明 |
user(username*) | 資料庫帳號 | |
password(passwd*) | 資料庫帳號的密碼 | |
database(db*) | 想要連線的資料庫名稱 | |
host | 127.0.0.1 | 資料庫伺服器位置(預設是本機電腦) |
port | 3306 | 連結資料庫的port |
unix_socket | ||
use_unicode | True | 是否用unicode |
charset | utf8 | 資料庫使用編碼集 |
collation | utf8_general_ci | 資料庫使用編碼 |
autocommit | False | 是否自動交易(commit) |
time_zone | 設定時區 | |
sql_mode | ||
get_warnings | False | 是否獲取警告 |
raise_on_warnings | False | 當例外發生時是否中斷 |
connection_timeout | 連線等待時間 | |
client_flags | ||
buffered | False | 是否cursor物件在執行查詢後立刻獲取查詢結果 |
raw | False | 查詢結果是否使用原生資料格式,而非python資料格式 |
ssl_ca | SSL憑證授權 | |
ssl_cert | SSL憑證檔案 | |
ssl_key | SSL的key |
非常感謝
回覆刪除哈 希望有機會可以多交流~
刪除