关于C#连接到EC2的问题

use*_*310 9 c# mysql amazon-ec2

我目前正在使用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");
        }
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,当我运行它时,它会产生"连接失败"错误.

我用谷歌搜索并想出我需要设置"授予所有权限*.*到root @'localhost'"

所以,我做到了!

但它仍然无效.我想我遵循了所有步骤.

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

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

对不起,我是EC2的新手.

gan*_*dil 0

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;
Run Code Online (Sandbox Code Playgroud)

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