Python中如何连接MySQL数据库?

2025-05-15 3

Image

在Python开发中,数据库操作是常见的需求之一,尤其是MySQL作为的关系型数据库之一,与Python的结合使用频率极高。无论是数据分析、Web开发还是自动化脚本,掌握Python连接MySQL的方法都至关重要。如何使用Python连接MySQL数据库,涵盖安装驱动、建立连接、执行查询等核心操作,并提供代码示例和常见问题解决方案。


一、安装MySQL驱动

Python连接MySQL需要依赖第三方库,最常用的是mysql-connector-pythonPyMySQL。以下是两种驱动的安装方法:

  1. mysql-connector-python(官方驱动)
    通过pip安装:

    pip install mysql-connector-python
    
  2. PyMySQL(纯Python实现)
    适用于需要兼容性的场景:

    pip install PyMySQL
    

二、建立数据库连接

安装驱动后,通过以下代码建立与MySQL数据库的连接:

使用mysql-connector-python

import mysql.connector

config = {
    "host": "localhost",
    "user": "your_username",
    "password": "your_password",
    "database": "your_database"
}

try:
    conn = mysql.connector.connect(**config)
    print("连接成功!")
except mysql.connector.Error as err:
    print(f"连接失败: {err}")

使用PyMySQL

import pymysql

conn = pymysql.connect(
    host="localhost",
    user="your_username",
    password="your_password",
    database="your_db"
)
print("连接成功!")

三、执行SQL查询

连接成功后,可以通过游标(Cursor)执行SQL语句:

查询数据示例

cursor = conn.cursor()
cursor.execute("SELECT * FROM users")

# 获取所有结果
results = cursor.fetchall()
for row in results:
    print(row)

cursor.close()

插入数据示例

cursor = conn.cursor()
sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
values = ("Alice", "alice@example.com")

cursor.execute(sql, values)
conn.commit()  # 提交事务
print("插入成功!")
cursor.close()

四、事务管理与异常处理

为了保证数据一致性,建议使用try-except块处理异常并显式控制事务:

try:
    cursor = conn.cursor()
    cursor.execute("UPDATE accounts SET balance = balance - 100 WHERE user_id = 1")
    cursor.execute("UPDATE accounts SET balance = balance + 100 WHERE user_id = 2")
    conn.commit()  # 提交事务
except Exception as e:
    conn.rollback()  # 回滚事务
    print(f"操作失败: {e}")
finally:
    cursor.close()

五、关闭数据库连接

操作完成后务必关闭连接,释放资源:

conn.close()
print("连接已关闭")

六、常见问题与解决

  1. 连接超时
    检查MySQL服务是否启动,确保hostport配置正确。

  2. 权限错误
    确认数据库用户是否有远程访问权限(如需要可执行GRANT ALL PRIVILEGES ON *.* TO 'user'@'%')。

  3. 编码问题
    在连接参数中添加charset="utf8mb4"支持中文和特殊字符。


通过以上步骤,你可以轻松实现Python与MySQL的交互。根据项目需求选择合适的驱动,并注意资源管理和异常处理,即可高效完成数据库操作!

(本文地址:https://www.nzw6.com/12355.html)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关