我目前正在使用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完全不熟悉。
答案 0 :(得分:0)
1)您应该通过aws控制台打开服务器上的MySQL端口。您可以通过单击转到RDS上的数据库安全组部分来执行此操作,只需将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;
第3个似乎是对的,你应该检查第1和第2个案例。
答案 1 :(得分:0)
您应该打开该ENI上的Redshift Docs以查看该接口上是否接受了连接,或者拒绝了该连接。像甘迪尔所提到的那样,你的安全小组很可能不正确。