【问题标题】:MySQL access denied to C# app but not to workbenchMySQL 对 C# 应用程序的访问被拒绝,但对工作台的访问被拒绝
【发布时间】:2015-09-20 06:45:00
【问题描述】:

我正在尝试访问远程 MySQL 数据库。我能够连接,通过 MySQL Workbench 执行查询,但无法通过它与数据库连接的 C# 应用程序执行查询,但查询没有执行,因为访问被拒绝 错误:

1142: MySqlException (0x80004005): SELECT 命令拒绝用户 'abc'@'117.196.109.45' 用于表 xyz

我还链接了一个类似的未回答问题Remote MySql Access denied for user with C# code but can connect with DbVisualizer

【问题讨论】:

  • 您需要通过 MySQL Workbench 登录并授予'abc'@'117.196.109.45' 权限,才能拥有SELECT 权限。如果您要从多个位置访问数据库,'abc'@* 将允许来自任何 IP 地址的该用户。
  • 工作台和 C# 应用程序运行在同一台 PC 上,使用相同的用户名、密码和公共 IP 访问远程 MySQL 数据库
  • 您可能有登录权限,但没有SELECT 权限。尝试在工作台中运行相同的查询。
  • 是的,它确实可以运行。我可以通过工作台创建、更新、选择、删除所有内容。我真的很惊讶为什么它不能在 C# 中运行顺便说一句我在 LAN 中完美地运行同一个应用程序

标签: c# mysql database


【解决方案1】:

这是一个安全和权限的问题。您的 MySQL Workbench 正在使用 abc@127.0.0.1,其中 ip 是 localhost。但是 c# 应用程序正在使用您在连接字符串中提供的凭据的远程 ip。

如果您在本地主机上,请更改连接字符串中的凭据,或者更改 web.config(如果不是 webapp,则更改 app.config)中的凭据。

或通过 Workbench 更改权限并允许该服务器 117.196.109.45 权限。

观看此视频,了解使用 Workbench 设置权限: https://www.youtube.com/watch?v=qSdbNoW2f-c

查看此视频了解一般故障排除https://www.youtube.com/watch?v=DCgRF4KOYIY

【讨论】:

  • 谢谢,实际上是连接字符串错误导致了问题。
  • @ShyamalParikh 什么是连接字符串问题?我好像遇到了类似的问题
  • @philr 非常抱歉,这个问题发生在很久以前,不记得是什么原因造成的,只是我在连接字符串中犯了一个错误。
猜你喜欢
  • 2021-04-02
  • 1970-01-01
  • 1970-01-01
  • 2012-09-05
  • 1970-01-01
  • 2013-11-25
  • 2017-11-01
  • 1970-01-01
  • 2017-07-19
相关资源
最近更新 更多