如何使用Python连接MariaDB
我们在本文讲解使用Python连接MariaDB,管理其中之数据,包括服务器,MaxScale以及SkySQL
准备和安装
可以在官网上下载MariaDB Server。具体请参考手册。
MariaDB通过MariaDB Connector为Python提供支持,也可以通过Python Package Index获得支持。
安装方法,请使用如下命令:
pip install mariadb
连接到MariaDB
1 首先导入模块
import mariadb
2 使用connect()函数与数据库连接。包括一系列参数,如用户名,主机名,密码。
3 使用cursor()在连接中检索游标。
游标为开发者提供了与服务器交互的界面,例如运行SQL查询和管理事务。
# Module Imports
import mariadb
import sys
# Connect to MariaDB Platform
try: conn = mariadb.connect(
user="db_user",
password="db_user_passwd",
host="192.0.2.1",
port=3306,
database="employees"
) except mariadb.Error as e:
print(f"Error connecting to MariaDB Platform: {e}")
sys.exit(1)
# Get Cursor
cur = conn.cursor()
接收数据
初始化数据库连接后,就可以处理数据。第一件事可以尝试从数据库检索信息。如下查询代码:
cur.execute(
"SELECT first_name,last_name FROM employees WHERE first_name=?",
(some_name,))
MariaDB Connector使用prepare语句,将元组中的值插入到?号位置,这样更为安全。
查询字段:
# Print Result-set
for (first_name, last_name) in cur:
print(f"First Name: {first_name}, Last Name: {last_name}")
每行从游标作为元组传递,该元组包含SELECT中的字段。
新增数据
execute()函数是执行INSERT语句的方法,向表中添加新的行:
cursor.execute(
"INSERT INTO employees (first_name,last_name) VALUES (?, ?)",
(first_name, last_name))
默认情况下,为自动提交。如果想手动管理事务,可以通过autocommit的属性设置为false来禁用它。
# Disable Auto-Commit
conn.autocommit = False
这样,可以使用commit()和rollback()方法来提交和回滚事务。在MariaDB中,使用Innodb存储引擎可以在一张表中执行多个并发事务,不需要手动锁定。
捕捉异常
如果想在执行SQL时捕获异常,可以使用error类:
try:
cursor.execute("some MariaDB query"))
except mariadb.Error as e:
print(f"Error: {e}")
完成数据库操作后,确保关闭,避免打开未使用的连接。
conn.close()