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

Robot Framework连接MySQL数据库时遭遇Access denied错误的问题求助

解决Robot Framework连接MySQL时的1045访问拒绝错误

先看报错信息里的关键点:Access denied for user 'root@localhost'@'localhost'——这里MySQL把你的用户名识别成了root@localhost,但实际上你的数据库里应该只有root这个用户(关联主机localhost),这是问题的核心原因。

下面一步步帮你排查解决:

1. 修正Robot Framework里的用户名参数

你在${username}变量里写了root@localhost,但Connect To Database关键字的用户名和主机是分开的两个参数(${username}和${DBHost}),把主机信息拼到用户名里会导致MySQL识别错误的用户。

修改你的变量部分:

*** Variables ***
${DBName} custom_workflow
${username} root  # 去掉@localhost,只保留用户名
${password} password
${DBHost} localhost
${DBPort} 3306

2. 验证MySQL用户的权限配置

即使修正了参数,也要确保root用户确实允许从localhost访问,并且密码正确:

  • 打开MySQL命令行客户端,登录后执行:
    SELECT user, host FROM mysql.user WHERE user = 'root';
    
  • 如果结果里没有root@localhost的记录,需要创建并授权:
    CREATE USER 'root'@'localhost' IDENTIFIED BY '你的实际密码';
    GRANT ALL PRIVILEGES ON custom_workflow.* TO 'root'@'localhost';
    FLUSH PRIVILEGES;
    
  • 如果已经有这条记录,可以尝试重置密码(避免密码输入错误):
    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的实际密码';
    FLUSH PRIVILEGES;
    

3. 确认MySQL服务状态

Windows上打开「服务」管理器,找到MySQL服务,确保它处于正在运行状态。如果没启动,右键启动服务,再重新测试。

4. 用命令行先验证连接

在测试Robot Framework之前,先用MySQL客户端命令行测试连接,排除数据库本身的问题:

mysql -u root -p -h localhost -P 3306 custom_workflow

输入密码后如果能成功进入数据库,说明连接参数是对的,再回到Robot Framework里运行测试。

额外小提示

如果还是不行,可以试试把${DBHost}改成127.0.0.1,有时候localhost会走Windows命名管道,而127.0.0.1强制走TCP/IP连接,可能解决一些隐式的连接问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 01:29:10