Python:怎样连接 MySQL 数据库及错误处理
Lasted 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()