Python:怎樣連接 MySQL 數據庫及錯誤處理
最近更新時間 2020-11-25 16:46:57
MySQL 提供了 Python 的官方鏈接庫 mysql-connector-python 操作數據庫,下面介紹數據庫的鏈接,及錯誤處理。
安裝 Connector/Python
pip install mysql-connector-python
連接數據庫
connect() 方法成功連接 MySQL 數據庫後返回 MySQLConnection 對象。
下面的代碼通過用戶名和密碼等信息連接到數據庫,使用完數據庫後需要關閉連接。
import mysql.connector
cnx = mysql.connector.connect(user='scott', password='password',
host='127.0.0.1',
database='employees')
cnx.close()
也可以通過 connection.MySQLConnection() 連接數據庫,如下所示:
from mysql.connector import (connection)
cnx = connection.MySQLConnection(user='scott', password='password',
host='127.0.0.1',
database='employees')
cnx.close()
以上兩種方式都可以正常連接數據庫,但一般更喜歡使用 connect() 方式連接。
可以通過 ** 操作符指定傳入的參數,如下所示。
import mysql.connector
config = {
'user': 'scott',
'password': 'password',
'host': '127.0.0.1',
'database': 'employees',
'raise_on_warnings': True
}
cnx = mysql.connector.connect(**config)
cnx.close()
處理錯誤信息
通過 try catch 語句可以捕獲連接數據庫時產生的異常信息,如下所示:
import mysql.connector
from mysql.connector import errorcode
try:
cnx = mysql.connector.connect(user='scott',
database='employ')
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with your user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
else:
cnx.close()
使用 C 擴展版本
Connector/Python 官方提供了兩種實現:純 Python 接口和 C 語言版本,可以在配置文件中通過 use_pure 參數指定,8.0.11 版本後默認 False,以前的版本默認 True。如果本地只有一種接口,該參數無效。
import mysql.connector
cnx = mysql.connector.connect(user='scott', password='password',
host='127.0.0.1',
database='employees',
use_pure=False)
cnx.close()