【问题标题】:Error connecting to Amazon EC2 MySQL from C#从 C# 连接到 Amazon EC2 MySQL 时出错
【发布时间】:2011-12-11 15:23:37
【问题描述】:

我有一个 AWS EC2 实例正在运行。我试图在 C# 中像这样连接到我的 MySQL

MySqlConnection l_DBConn = new MySqlConnection();
l_DBConn.ConnectionString = "Server=my-ec2.compute-1.amazonaws.com;Port=3306;Database=mydatabase;uid=root;password=mypassword;port=3306;charset=utf8"
MySqlCommand command = l_DBConn.CreateCommand();
command.CommandText = "select * from users";
MySqlDataReader Reader = command.ExecuteReader();

运行最后一行时收到的错误是“连接必须有效且打开。”。我仍然可以使用 Filezilla、Putty 和 MySQL WorkBench(使用 SSH)连接到我的实例。我在我的代码中使用 MySql.Data.MySqlClient 。有人对此有任何想法吗?这是因为我的实例不允许远程访问还是我的连接字符串有问题?

提前谢谢你, 韦恩。

编辑:通过添加 l_DBConn.Open() 并使用 RANT ALL PRIVILEGES ON 将我的 IP 添加到服务器来解决问题。 TO root@'hostname' 由 'root-password' 识别。谢谢!

【问题讨论】:

    标签: c# mysql amazon-ec2 connection-string


    【解决方案1】:

    在执行阅读器之前尝试调用l_DBConn.open()。该错误意味着连接未打开,因为您尚未明确打开它

    【讨论】:

    • 谢谢,我添加了一个错误,提示我的主机不允许创建与服务器的连接。然后我使用 GRANT ALL PRIVILEGES ON . TO root@'hostname' IDENTIFIED BY 'root-password' 将我的 ip 添加到服务器,问题就解决了。谢谢!
    【解决方案2】:

    一些想法:

    • 确保您可以先在本地连接到数据库。
    • Sql Server 是否设置为允许混合身份验证
    • 如果您正在运行 EC2 防火墙和 windows 防火墙,您是否打开了端口 3306。

    【讨论】:

    • 我可以在本地运行代码。问题在于你的第二个建议,我的 sql server 还不允许混合身份验证。通过添加我的 ip 解决它。谢谢!
    猜你喜欢
    • 2016-08-04
    • 2019-07-25
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 2015-09-25
    • 2021-07-23
    • 2012-07-04
    • 1970-01-01
    相关资源
    最近更新 更多