如何在已发布的文件夹之外执行可以访问 mysql 的程序?

How to execute a program with access to mysql outside of published folder?

我有一个访问 MySQL 的 .net 核心控制台应用程序。我已经在我的 raspberry pi 上成功地将应用程序编译为 运行,它还托管了 MySQL 数据库。在我将编译后的代码通过 sftp 传输到我的 raspberry pi 后,如果我在包含该应用程序的文件夹中,我可以成功 运行 代码。但是,如果我上升一个级别并尝试 运行 该应用程序。我从 MySQL 收到身份验证错误。例如,在我的发布文件夹中,我可以 运行 ./Application 没有任何问题。如果我上升一个级别然后 运行,例如 publish/Application,它会因身份验证错误而失败。

下面是我遇到的异常。

Unhandled Exception: MySql.Data.MySqlClient.MySqlException: Authentication to host '' for user '' using method 'mysql_native_password' failed with message: Access denied for user ''@'localhost' (using password: NO) ---> MySql.Data.MySqlClient.MySqlException: Access denied for user ''@'localhost' (using password: NO)

您还可以在下面看到我的应用程序设置文件,其中包含我的连接信息。

{
  "ConnectionStrings": {
    "TestDB": "Server=127.0.0.1;Database=TestDB;Uid=remote;Pwd=remote"
  }
}

这也是我用来授予我的用户访问数据库的查询。

GRANT ALL PRIVILEGES ON TestDB.* TO remote@'%' IDENTIFIED BY 'remote';

有谁知道可能导致此问题的原因是什么?我的最终目标是能够从任何目录执行应用程序,以便将其添加到 cron 守护程序。

如有任何帮助,我们将不胜感激。

谢谢。

我想,你的连接字符串有误。

试试这个:

{
  "ConnectionStrings": {
    "TestDB": "Server=127.0.0.1;Database=TestDB;User=remote;Password=remote"
  }
}

我刚刚将 UidPwd 替换为 UserPassword