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

在Jupyter Notebook中导入SQL文件遇OperationalError(2005)错误求助

解决MySQLdb连接时的"Unknown MySQL server host"错误

嘿,我一眼就瞅出问题所在啦!你现在的代码犯了个典型的小错误——把本地SQL文件的路径传给了MySQLdb.connect(),但这个函数是用来连接远程/本地的MySQL数据库服务器的,不是直接读取本地SQL文件的。所以它把abc.sql当成了数据库主机的域名/IP地址,自然找不到对应的服务器,就抛出了那个2005错误。

下面给你分步骤的解决方案:

步骤1:正确连接到MySQL服务器

MySQLdb.connect()需要的是数据库服务器的连接参数,不是SQL文件路径。示例代码如下:

import pandas as pd
import MySQLdb

# 替换成你的实际数据库信息
conn = MySQLdb.connect(
    host='localhost',  # 比如本地服务器就是localhost,远程的话填对应的IP/域名
    user='your_username',  # 你的MySQL用户名
    password='your_password',  # 你的MySQL密码
    database='your_target_db'  # 要操作的数据库名称
)

步骤2:读取并执行本地SQL文件(如果需要)

如果你的abc.sql里是建表、插入数据这类初始化语句,先读取文件内容再执行:

# 读取本地SQL文件内容
with open('abc.sql', 'r', encoding='utf-8') as sql_file:
    sql_content = sql_file.read()

# 创建游标执行SQL脚本
cursor = conn.cursor()
cursor.execute(sql_content)
conn.commit()  # 执行写操作(比如INSERT、CREATE)必须提交事务

步骤3:查询数据到Pandas DataFrame

完成SQL脚本的执行后,再用pd.read_sql_query查询数据:

tab = pd.read_sql_query("select * from user_tables", conn)

# 用完记得关闭连接
conn.close()

额外小提示

  • 如果你的abc.sql里直接就是查询语句,也可以跳过步骤2,直接把读取到的sql_content传给pd.read_sql_query:
    tab = pd.read_sql_query(sql_content, conn)
    
  • 确保你的MySQL服务已经启动,并且连接参数(host、用户名、密码、数据库名)完全正确
  • 如果SQL文件里有多个独立语句,可能需要拆分后逐个执行(比如用split(';')分隔,注意处理包含分号的字符串)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:34:55