try:
with conn.cursor() as cursor:
执行 SQL
sql = SELECT * FROM users
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
print(row)
finally:
conn.close()
✅ 注意:`PyMySQL` 可以作为 `MySQLdb` 的替代品,直接替换导入即可。
✅ 方法三:使用 `mysqlclient`(高性能,但需编译)
适用于 Linux/macOS,性能好,但安装复杂。
bash
pip install mysqlclient
用法与 `PyMySQL` 类似。
🔐 安全建议
不要在代码中硬编码用户名和密码。
使用配置文件或环境变量管理数据库凭证。
例如:
python
import os
host = os.getenv('DB_HOST')
user = os.getenv('DB_USER')
password = os.getenv('DB_PASSWORD')
🛠️ 常见错误处理
python
import mysql.connector
from mysql.connector import Error
try:
conn = mysql.connector.connect(**config)
if conn.is_connected():
print(成功连接数据库)
except Error as e:
print(f连接失败: {e})
finally:
if conn.is_connected():
conn.close()