C#Winforms与MySQL AWS数据库的连接
我正在尝试将winforms.net应用程序与AWS RDS MySQL数据库连接,但连接时遇到困难。我读过很多关于通过Microsoft SQL数据库和Elastic Beanstalk连接的资料,但我还没有找到我想要的答案。。。可能是因为我是个笨蛋 我已经浏览了其中几个问题: 我收到以下错误消息: MySql.Data.MySqlClient.MySqlException:“无法连接到任何指定的MySql主机。”C#Winforms与MySQL AWS数据库的连接,c#,mysql,winforms,amazon-web-services,database-connection,C#,Mysql,Winforms,Amazon Web Services,Database Connection,我正在尝试将winforms.net应用程序与AWS RDS MySQL数据库连接,但连接时遇到困难。我读过很多关于通过Microsoft SQL数据库和Elastic Beanstalk连接的资料,但我还没有找到我想要的答案。。。可能是因为我是个笨蛋 我已经浏览了其中几个问题: 我收到以下错误消息: MySql.Data.MySqlClient.MySqlException:“无法连接到任何指定的MySql主机。” 有什么简单的东西是我遗漏的吗?我已将数据库端点复制到数据库URL位置。我的用
有什么简单的东西是我遗漏的吗?我已将数据库端点复制到数据库URL位置。我的用户id和密码是正确的。我的数据库在AWS上设置为MySQL数据库。由于无法连接到主机,因此给出了错误消息 在您的连接字符串中,localhost作为服务器,但您的数据库位于云(AWS)上,因此这意味着您必须指定数据库的IP或指向该数据库的域名,而不是本地(本地指计算机中的)。e、 g
string conn=“server=192.168.0.7;Database=Database\u name;User Id=admin;
密码=我的密码”代码>
请注意,服务器IP是由AWS提供的,您应该确保端口处于启用状态。MySQL最常见的端口是3306
致以最诚挚的问候。试试这个
//This is my connection string i have assigned the database file address path
string MyConnection2 =
"host='localhost';database='databasename';username='myusername';password='mypassword'";
//This is my insert query in which i am taking input from the user through windows forms
string Query = "Your query";
//This is MySqlConnection here i have created the object and pass my connection string.
MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);
//This is command class which will handle the query and connection object.
MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);
MySqlDataReader MyReader2;
MyConn2.Open();
MyReader2 = MyCommand2.ExecuteReader();
// Here our query will be executed and data saved into the database.
MessageBox.Show("Save Data");
while (MyReader2.Read())
{
}
MyConn2.Close();
使用检查会使您的参数名称看起来好像有误。”用户名“”应为“uid”,密码“”应为“pw”
无论如何,我建议使用来构造连接字符串
var connectionStringBuilder = new MySqlConnectionStringBuilder
{
Server = "<Instance_Ip>",
UserID = "root",
Password = "<Password>",
Database = "<Database_Name>"
};
using (var conn = new MySqlConnection(connectionStringBuilder.ToString()))
var connectionStringBuilder=new MySqlConnectionStringBuilder
{
服务器=”,
UserID=“root”,
密码=”,
Database=“”
};
使用(var conn=new MySqlConnection(connectionStringBuilder.ToString())
您可以使用终端/命令行登录MySQL吗?通常您需要创建防火墙规则以允许访问云数据库服务器(出于安全原因)。“当您首先创建一个DB实例时,它的防火墙阻止任何数据库访问,除非通过关联的安全组指定的规则。”您应该考虑将MySQL实例打开到Internet上的负面影响。任何人在你的应用程序中搜索可读字符串,都会发现你的MySQL服务器的IP地址、管理员用户名和密码,使他们具有完全访问权限。除非你直接在同样包含MySQL服务器的EC2实例上运行/开发此winforms应用程序,否则将localhost作为服务器名称是行不通的。确保MySQL数据库使用的端口对外开放(坏主意),然后将数据库服务器的公共internet IP地址放入连接字符串中,以代替localhost
-然后读一读为什么这是一个坏主意,并改变周围的情况,使你的应用程序使用web服务或类似服务,并且web服务与mysqlI有一个私人的可信连接。我不确定这是否太有帮助,提供了一个使用192.168.x.x本地lan地址的示例,供未能理解localhost不是其基于云的数据库服务器面向公众的IP的概念的人使用。。
var connectionStringBuilder = new MySqlConnectionStringBuilder
{
Server = "<Instance_Ip>",
UserID = "root",
Password = "<Password>",
Database = "<Database_Name>"
};
using (var conn = new MySqlConnection(connectionStringBuilder.ToString()))