连接到Redshift群集时出错-Npgsql.PostgresException:28000:主机没有pg_hba.conf条目

问题描述 投票:0回答:1

我正在尝试从C#连接到AWS Redshift并执行一个简单的查询:

public void GetData()
{
    NpgsqlConnectionStringBuilder builder = new NpgsqlConnectionStringBuilder();
    builder.Host = "myhostname";
    builder.Port = 5439;
    builder.Database = "mydb";
    builder.Username = "myusername";
    builder.Password = "mypassword";
    builder.ServerCompatibilityMode = ServerCompatibilityMode.Redshift;

    using (var conn = new NpgsqlConnection(builder.ConnectionString))
    {
        conn.Open();
        if (conn.State == ConnectionState.Open)
        {
            using (var cmd = new NpgsqlCommand())
            {
                cmd.Connection = conn;
                cmd.CommandText = "SELECT TOP 10 field FROM example;";

                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Console.WriteLine(reader.GetString(0));
                    }
                }
            }
        }
    }
}

[尝试建立连接时,我得到:Npgsql.PostgresException: 28000: no pg_hba.conf entry for host。在同一台计算机上,我可以使用JetBrains DataGrip使用相同的凭据连接到群集。

c# .net-core amazon-redshift npgsql
1个回答
0
投票

This问题几乎相同,但是使用构建器代替手动创建连接字符串。所以这是代码:

NpgsqlConnectionStringBuilder builder = new NpgsqlConnectionStringBuilder();
builder.TrustServerCertificate = true;
builder.SslMode = SslMode.Required;
© www.soinside.com 2019 - 2024. All rights reserved.