You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.9连接MySQL数据库报错,求正确的数据获取实现方案

Python 3.9连接MySQL并获取数据的正确方法

问题根源

你混淆了R的DBI语法和Python的数据库操作逻辑:

  1. 导入pyodbc却调用R风格的dbConnect(MySQL()),Python中无此写法
  2. 报错SyntaxError的直接原因是参数传递顺序错误,但核心问题是用错了数据库驱动库

推荐方案:使用官方驱动mysql-connector-python

这是MySQL官方推荐的Python驱动,操作逻辑和你的R代码接近,适配Python 3.9。

步骤1:安装依赖库

pip install mysql-connector-python pandas

步骤2:完整实现代码

import mysql.connector
from mysql.connector import Error
import pandas as pd

# 数据库配置参数
db_user = 'k'
db_password = 'F6'
db_name = 'meg'
db_table = 'dat'
db_host = 'my.g2s'
db_port = 3306

try:
    # 建立数据库连接
    db_conn = mysql.connector.connect(
        user=db_user,
        password=db_password,
        host=db_host,
        port=db_port,
        database=db_name
    )

    if db_conn.is_connected():
        # 执行查询并直接转为DataFrame
        query = f"SELECT * FROM {db_table}"
        df = pd.read_sql(query, db_conn)
        print("数据获取成功")
        # 打印前5行验证结果
        print(df.head())

except Error as e:
    print(f"数据库操作出错: {e}")
finally:
    # 确保关闭连接释放资源
    if db_conn.is_connected():
        db_conn.close()

可选方案:使用pymysql分步操作

如果更习惯类似R的分步执行逻辑,可以用pymysql实现:

步骤1:安装依赖库

pip install pymysql pandas

步骤2:代码实现

import pymysql
import pandas as pd

# 数据库配置参数
db_user = 'k'
db_password = 'F6'
db_name = 'meg'
db_table = 'dat'
db_host = 'my.g2s'
db_port = 3306

# 建立连接
connection = pymysql.connect(
    host=db_host,
    port=db_port,
    user=db_user,
    password=db_password,
    database=db_name
)

# 创建游标执行查询
cursor = connection.cursor()
cursor.execute(f"SELECT * FROM {db_table}")

# 获取所有数据并转为DataFrame
rows = cursor.fetchall()
columns = [desc[0] for desc in cursor.description]
df = pd.DataFrame(rows, columns=columns)

# 关闭游标和连接
cursor.close()
connection.close()

# 输出结果
print(df.head())

关键注意事项

  • 不要混用驱动:pyodbc主要用于SQL Server、Access等数据库,MySQL优先选择官方驱动或pymysql
  • Python 3.9支持f-string格式化SQL语句,比字符串拼接更简洁安全
  • 必须处理连接异常,操作完成后关闭连接,避免资源泄漏

内容的提问来源于stack exchange,提问作者psysky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 05:54:22