有关 C# 连接到 EC2 的问题

Issues about C# connecting to EC2

提问人:user1313310 提问时间:5/28/2012 最后编辑:Bron Daviesuser1313310 更新时间:12/21/2017 访问量:1071

问:

我目前正在使用 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");
        }

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

我用谷歌搜索了一下,发现我需要将“授予所有权限 *.* 设置为root@'localhost'”

所以,我做到了!

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

  • 我目前正在研究Visual Studio 2008和Windows7。

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

对不起,我是 EC2 的新手。

C# MySQL Amazon-EC2

评论

2赞 reach4thelasers 5/28/2012
您能否重新移动 try catch,让异常触发并粘贴错误和堆栈跟踪
0赞 Joe 5/28/2012
如前所述,请检查防火墙(因为这是 ec2),确保该端口在您的安全组中也处于打开状态。

答:

0赞 gandil 6/21/2012 #1

1)您应该通过AWS控制台在服务器上打开MySQL端口。您可以通过单击转到 RDS 上的数据库安全组部分来执行此操作,只需输入 CIDR:0.0.0.0/0 即可测试您已连接且状态为已授权。然后,您可以重新排列规则以指定哪个 IP 可以连接。
2)您应该使用MySQL连接器从C#连接MySQL。
Mysql 连接器链接
3) 连接字符串应如下所示:

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

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

0赞 rajat banerjee 11/14/2017 #2

您应该在该 ENI 上打开 VPC 流日志,以查看该接口上的连接是被接受还是被拒绝。正如 gandil 所提到的,您的安全组很有可能不正确。