关于 C# 连接到 EC2 的问题

Posted

技术标签:

【中文标题】关于 C# 连接到 EC2 的问题【英文标题】:Issues about C# connecting to EC2 【发布时间】:2012-06-02 07:19:24 【问题描述】:

我目前正在使用 Amazon EC2 (AMI linux) + mysql,现在我正在研究 C# 的东西。

我写了这样的代码:

        MySqlConnection DBConn = new MySqlConnection();
        DBConn.ConnectionString = "Server=ec2-**.compute-1.amazonaws.com;Database=****;uid=root;password=****;port=3306;charset=utf8";

        try
        
            DBConn.Open();
        
        catch (Exception ex)
        
            MessageBox.Show("connecting fail");
        

但由于某种原因,当我运行它时,它会生成“连接失败”错误。

我google了一下,发现我需要设置“授予所有权限*.*给root@'localhost'”

所以,我做到了!

但它仍然不起作用。我想我遵循了所有的步骤。

我目前正在开发 Visual Studio 2008 和 Windows7。

我检查了错误,似乎是超时错误。我认为这是防火墙的事情,但不知道我应该做什么。我设置了我的安全组,以便 TCP 端口对所有人开放(包括 Mysql)。它仍然无法正常工作。这不是解决这个问题的方法吗?;( 不过,让我好奇的是,在我设置安全组之前,我可以使用 MySQL 工作台访问数据库。

抱歉,我对 EC2 完全陌生。

【问题讨论】:

你能不能去掉try catch,让异常触发并粘贴错误和堆栈跟踪 如上所述,检查防火墙 nd(因为这是 ec2)确保端口在您的安全组中也是打开的。 【参考方案1】:

1) 您应该通过 aws 控制台打开服务器上的 MySQL 端口。您可以通过单击转到 RDS 部分的 DB Security Groups 来执行此操作,只需输入 CIDR:0.0.0.0/0 即可测试您已连接并且状态已授权。然后你可以重新排列规则来指定哪个ip可以连接。 2) 您应该使用 MySQL 连接器从 C# 连接 MySQL。Mysql Connector Link 3)你的连接字符串应该是这样的:

Server=yourdburl;
Database=yourdb; 
Uid=yourdbuser; 
Pwd=yourdbuserpassword;
charSet=utf8;

第三个似乎是对的,你应该检查第一个和第二个案例。

【讨论】:

【参考方案2】:

您应该在该 ENI 上打开 VPC Flow Logs 以查看连接是否在该接口上被接受或被拒绝。正如甘迪尔所说,您的安全组不正确的可能性很大。

【讨论】:

以上是关于关于 C# 连接到 EC2 的问题的主要内容,如果未能解决你的问题,请参考以下文章

C# Winforms 连接到 MySQL AWS 数据库

如何将aws上的ec2实例连接到我公司的***

如何连接到 AWS 中的 EC2 实例?

如何从 EC2 连接到本地 ***?

远程桌面连接到 ec2 实例

无法连接到在 EC2 上运行的 Mongodb