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

如何在Pandas中建立MySQL连接?遇1045权限错误求排查

问题分析与解决

核心错误原因

你遇到的OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)"),本质是Pandas连接MySQL时未正确传递密码,或者密码参数未被识别。错误提示里的using password: NO明确说明连接过程中没有提供有效密码。

具体问题点

对比你的Django数据库配置,能看到一个关键细节:Django配置里用的是'Password'(首字母大写),但Python连接MySQL的标准库(如pymysql、mysqlclient)以及基于它们的Pandas连接,都要求使用**小写的password**作为参数名。如果你的Pandas连接代码照搬了Django的键名,会导致密码参数被忽略,最终触发无密码登录的权限错误。

正确的Pandas连接MySQL方式

推荐使用sqlalchemy创建引擎(Pandas官方推荐的方式),示例代码如下:

import pandas as pd
from sqlalchemy import create_engine

# 格式:mysql+驱动名://用户名:密码@主机/数据库名
engine = create_engine('mysql+pymysql://root:Antimk@localhost/test')

# 测试连接并读取数据
df = pd.read_sql('SELECT * FROM your_table_name', engine)

如果用原生pymysql连接,参数要注意小写:

import pymysql
import pandas as pd

connection = pymysql.connect(
    host='localhost',
    user='root',
    password='Antimk',  # 这里必须是小写的password
    database='test'
)
c = connection.cursor()

额外排查点

  • 确认MySQL的root用户确实允许localhost登录,且密码Antimk拼写、大小写完全正确
  • 如果MySQL端口不是默认的3306,需要在连接参数里补充port=3306(或你的实际端口)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 23:30:26