2026年如何用Python连接MariaDB数据库?完整教程带代码示例

如何用Python连接MariaDB数据库?完整教程带代码示例在正式连接 MariaDB 数据库之前 确保你具备必要的环境和权限 MariaDB 作为 MySQL 的分支 兼容性良好 能无缝工作在大多数 Linux Windows macOS 环境中 方便开发与部署 首先要确认本地或服务器上已经有 MariaDB 服务端 并且具备一个可以登陆的账号与密码 你也需要有一个数据库和基础表 方便后续的查询与创建 在开发环境中需要一门现代的 Python

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



在正式连接 MariaDB 数据库之前,确保你具备必要的环境和权限。MariaDB 作为 MySQL 的分支,兼容性良好,能无缝工作在大多数 Linux、Windows、macOS 环境中,方便开发与部署。

首先要确认本地或服务器上已经有MariaDB 服务端,并且具备一个可以登陆的账号与密码。你也需要有一个数据库和基础表,方便后续的查询与创建。

在开发环境中需要一门现代的Python 版本(推荐 Python 3.8 及以上),以及一个合适的数据库连接驱动。常见的两种选择是官方的mariadb驱动和 mysql-connector-python。下面给出安装方式。

pip install mariadb
pip install mysql-connector-python

要连接 MariaDB 需要提供主机地址、端口、用户名、密码、目标数据库等信息。把这些参数安全地放在环境变量中可以提升安全性。

使用 mariadb 驱动时,常见的连接方式是通过 mariadb.connect(),传入参数关键字参数。

import os import mariadbhost = os.getenv(“DB_HOST”, “127.0.0.1”) port = int(os.getenv(“DB_PORT”, 3306)) user = os.getenv(“DB_USER”, “root”) password = os.getenv(“DB_PASSWORD”, “”) database = os.getenv(“DB_NAME”, “testdb”)try:conn = mariadb.connect(host=host,port=port,user=user,password=password,database=database)print(“Connected to MariaDB”) except mariadb.Error as e:print(f”Error connecting to MariaDB: {e}“)
# 使用连接后的游标执行简单查询 with conn.cursor() as cur:cur.execute(“SELECT 1”)row = cur.fetchone()print(row)

下面提供一个从连接、建表、插入数据、查询数据到清理资源的完整示例。它演示了参数化查询以避免 SQL 注入和显式提交事务

在演示中用到的表结构设计简单明了,便于快速上手和后续扩展。设计一个自增主键和两个字段,便于演练增删改查

import mariadbdef create_connection():return mariadb.connect(host=“127.0.0.1”,port=3306,user=“your_user”,password=“your_password”,database=“your_database”)def setup_table(conn):with conn.cursor() as cursor:cursor.execute(“”“CREATE TABLE IF NOT EXISTS sensors (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100) NOT NULL,value FLOAT)”“”)conn.commit()def insert_sample(conn, name, value):with conn.cursor() as cursor:cursor.execute(“INSERT INTO sensors (name, value) VALUES (?, ?)”, (name, value))conn.commit()def fetch_all(conn):with conn.cursor() as cursor:cursor.execute(“SELECT id, name, value FROM sensors”)for row in cursor:print(row)def main():conn = Nonetry:conn = create_connection()setup_table(conn)insert_sample(conn, “temperature”, 23.5)fetch_all(conn)finally:if conn:conn.close()if name == “main”:main()

如果遇到连接失败,请首先检查主机地址、端口、用户名和密码是否正确,以及数据库用户是否有访问目标数据库的权限。确认防火墙和网络策略允许客户端与 MariaDB 服务器的端口通信,通常是 3306

如果日志显示权限不足,请确认用户在 MariaDB 端具有相应的权限,例如 GRANT ALL PRIVILEGES 或者对特定数据库的权限。可以通过管理员账户执行授权语句进行修复。

在遇到驱动相关的错误时,建议先检查所用驱动版本是否与 MariaDB 服务器版本兼容,并确保你的 Python 环境能加载所选的驱动包。

import mariadbtry:conn = mariadb.connect(host=“127.0.0.1”,port=3306,user=“wrong_user”,password=“wrong_password”,database=“testdb”) except mariadb.Error as e:print(“连接错误:”, e)

进行增删改操作时,使用参数化查询可以避免 SQL 注入风险,建议始终使用问号占位符和参数元组的组合方式。

确认对写操作使用了 conn.commit(),否则变更可能不会保存到数据库中。对于只读操作,可以将自动提交关闭以减少锁持有时间。

with conn.cursor() as cursor:cursor.execute(“INSERT INTO sensors (name, value) VALUES (?, ?)”, (“pressure”, 101.3))conn.commit()

小讯
上一篇 2026-04-16 07:08
下一篇 2026-04-16 07:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/263329.html