我正在尝试将我的 C# 应用程序与 openshift 数据库连接。但我在 conn.Open()
Eccezione => MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.
in MySql.Data.MySqlClient.NativeDriver.Open()
in MySql.Data.MySqlClient.Driver.Open()
in MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
in MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
in MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
in MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
in MySql.Data.MySqlClient.MySqlPool.GetConnection()
in MySql.Data.MySqlClient.MySqlConnection.Open()
这是我的方法:
public void connect()
{
string connStr = @"Server=test-lound.rhcloud.com;Port=3306;Database=test;Uid=XXXX;Pwd=YYYY;";
MySqlConnection conn = new MySqlConnection(connStr);
try
{
Console.WriteLine("Connecting to MySQL...");
conn.Open();
Console.WriteLine("Connection successfull !");
conn.Close();
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine("Eccezione => " + ex.ToString());
}
Console.WriteLine("Done.");
}
我做错了什么?是否可以通过 C# 客户端应用程序与 openshift 数据库建立连接?
编辑: 我找到了这个文档here描述了 SSH 隧道要求。也许这是必要的。
最佳答案
好吧,我终于端到端地工作了,但它是通过 ssh 隧道的 Mysql Workbench。这是 OpenShift 的一项要求,因为它是位于 IaaS AWS (Amazon EC2) 之上的 PaaS。所以对于开发者来说这不是问题。对于最终用户来说,如果没有 ssh-rsa 公钥对,它就无法工作,正如我所见。
一路上有一些不错的链接:快速简便的 2048 位 ssh-rsa 站点 key gen 。一个doc对于腻子和腻子根。 doc用于隧道设置(关键);看看dgreen写的。
解决方案是为应用程序提供 key 对,并针对隧道相应地调整 C#,或者使用 AWS EC2 IaaS,这很简单。 AWS 有 Free-tier一年。我可以轻松设置它,因为那是我最熟悉的地方。但我必须说我确实喜欢 Openshift 及其 PHP 前端。
关于c# - 连接到 OpenShift (Redhat Paas) mysql 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31905849/