在Python开发中,数据库操作是常见的需求之一,尤其是MySQL作为的关系型数据库之一,与Python的结合使用频率极高。无论是数据分析、Web开发还是自动化脚本,掌握Python连接MySQL的方法都至关重要。如何使用Python连接MySQL数据库,涵盖安装驱动、建立连接、执行查询等核心操作,并提供代码示例和常见问题解决方案。
一、安装MySQL驱动
Python连接MySQL需要依赖第三方库,最常用的是mysql-connector-python
和PyMySQL
。以下是两种驱动的安装方法:
-
mysql-connector-python(官方驱动)
通过pip安装:pip install mysql-connector-python
-
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("连接已关闭")
六、常见问题与解决
-
连接超时
检查MySQL服务是否启动,确保host
、port
配置正确。 -
权限错误
确认数据库用户是否有远程访问权限(如需要可执行GRANT ALL PRIVILEGES ON *.* TO 'user'@'%'
)。 -
编码问题
在连接参数中添加charset="utf8mb4"
支持中文和特殊字符。
通过以上步骤,你可以轻松实现Python与MySQL的交互。根据项目需求选择合适的驱动,并注意资源管理和异常处理,即可高效完成数据库操作!
(本文地址:https://www.nzw6.com/12355.html)