我正在使用 Apache 和 mod_mono 在 Linux VPS 上创建 ASP.NET Web API。我已完成所有设置,并成功证明 Web API 路由正常运行。
我最新的本地更改添加了与 mysql 数据库的集成。在我的开发机器上,这运行完美。但是,每当我上传已发布的 API 时,与数据库的连接就会失败。我做了一些挖掘,发现抛出的异常报告错误 1042 - 无法获取您的地址的主机名。
这是我的连接字符串:
SERVER={0};DATABASE={1};UID={2};PASSWORD={3};
(服务器为localhost,其他值适当填写)。
我做错了什么?我怎样才能让它连接到 mysql?当我使用管理员帐户 ssh 登录时,我可以从尝试使用的同一帐户连接,没有任何问题...
编辑:
我尝试过输入skip-name-resolve
/var/mysql/my.cnf,但没有任何效果。我还尝试过刷新 mysql 中的主机。
答案1
您的 API 似乎无法正确解析数据库连接字符串的“localhost”部分。如果您将“localhost”替换为 IP 地址,它可以通过网络连接到服务器,从而跳过解析部分。
但是,您的 MySQL 服务器需要允许通过网络进行访问。这不是默认设置,本网站其他地方提供了大量帮助。
请记住,您现在已将 IP 地址硬编码到 API 软件中。确保软件在网络更改后仍能正常运行,例如,通过将 IP 地址替换为正确的主机名。