【发布时间】:2019-12-09 14:59:48
【问题描述】:
我正在尝试将一个 winforms .net 应用程序与一个 AWS RDS MySQL 数据库连接,但我在建立连接时遇到了困难。我已经阅读了很多关于通过 Microsoft SQL 数据库和 Elastic Beanstalk 进行连接的材料,但我没有找到我正在寻找的答案......可能是因为我是一个菜鸟。
我浏览了以下几个问题: How to connect to MySQL Database? https://dev.mysql.com/doc/dev/connector-net/8.0/html/T_MySql_Data_MySqlClient_MySqlConnection.htm
using MySql.Data.MySqlClient;
string connection = "server=localhost; Database=database_URL; User Id=admin;
Password=myPassword";
myConn.Open();
MessageBox.Show("Success");
我收到以下错误消息:
MySql.Data.MySqlClient.MySqlException: '无法连接到任何指定的 MySQL 主机。'
我缺少什么简单的东西吗?我已将数据库端点复制到 database_URL 位置。我的用户名和密码正确。我的数据库在 AWS 上设置为 MySQL 数据库。
【问题讨论】:
-
你可以使用终端/命令行登录 MySQL 吗?
-
通常您需要创建防火墙规则以允许访问云数据库服务器(出于安全原因)。 “当您首次创建数据库实例时,其防火墙会阻止任何数据库访问,除非通过关联安全组指定的规则。” docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
-
您应该考虑将 MySQL 实例打开到 Internet 的负面影响。任何在您的应用程序中搜索可读字符串的人都会找到您的 MySQL 服务器的 IP 地址、管理员用户名和密码,从而获得完全访问权限。
-
除非您直接在还包含 MySQL 服务器的 EC2 实例上运行/开发此 winforms 应用程序,否则将 localhost 作为服务器名称是行不通的。确保您的 MySQL 数据库使用的端口对世界开放(坏主意),然后将您的数据库服务器的公共互联网 IP 地址放入您的连接字符串中,而不是
localhost。 - 然后阅读为什么这是一个坏主意并改变周围的东西,以便您的应用程序使用 Web 服务或类似服务,并且该 Web 服务与 mysql 有一个私有的可信连接
标签: c# mysql winforms amazon-web-services database-connection