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

Jupyter Notebook连接数据库时出现KeyError: 'db_host'如何解决?

解决KeyError: 'db_host'及数据库连接问题

核心问题拆解

  1. 环境变量未配置:os.environ["db_host"]报错的直接原因是你的Jupyter Notebook环境中,没有设置db_host、db_port这类数据库连接相关的环境变量,Python无法找到对应的值。
  2. 驱动库匹配错误:你明确说要连接MySQL,但代码里用的是psycopg2——这是PostgreSQL数据库的专用连接库,MySQL需要使用pymysql或mysql-connector-python这类适配的驱动。

具体解决方案

方案一:直接硬编码参数(适合学习/测试场景)

如果是学校项目的测试环节,不想折腾环境变量,可以直接把数据库的真实信息写入代码:

# 先安装MySQL驱动,比如pymysql
!pip install pymysql
import pymysql
import pandas as pd

# 替换成你的MySQL实际配置
conn = pymysql.connect(
    host="localhost",  # 本地数据库填localhost,远程填对应IP
    port=3306,         # MySQL默认端口是3306
    user="root",       # 你的数据库用户名
    password="你的数据库密码",
    database="要连接的数据库名"
)

方案二:正确配置环境变量(规范场景推荐)

如果坚持使用环境变量,可在Jupyter会话内手动设置:

import os
import pymysql

# 会话内临时设置环境变量
os.environ["db_host"] = "localhost"
os.environ["db_port"] = "3306"
os.environ["db_user"] = "root"
os.environ["db_password"] = "你的数据库密码"
os.environ["db_name"] = "要连接的数据库名"

# 建立连接(注意端口要转成整数)
conn = pymysql.connect(
    host=os.environ["db_host"],
    port=int(os.environ["db_port"]),
    user=os.environ["db_user"],
    password=os.environ["db_password"],
    database=os.environ["db_name"]
)

注意:从环境变量取出的端口是字符串类型,必须转成整数才能被MySQL驱动识别。

额外提示

  • 若你实际要连接的是PostgreSQL,可保留psycopg2,但同样要确保环境变量已配置,或直接硬编码连接参数。
  • 首次创建数据库时,需先在MySQL客户端执行CREATE DATABASE 数据库名;语句建好库,再通过代码连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:52:47