Amazon Web 服务和 mysql c++ 连接器无法从 EC2 实例连接到 RDS 实例
Amazon web services and mysql c++ connector cannot connect to RDS instance from EC2 instace
我正在用 C++ 编写服务器应用程序,它将从 EC2 实例连接到 RDS 实例并执行一般的数据库操作。我已经在该软件上工作了几个星期,今天我遇到了需要连接到数据库并与一些数据交互的步骤。我似乎无法连接它,每次我得到一个异常说 Unknown MySQL server host
(代码 2005),但奇怪的是我可以在 ssh 中使用 mysql 命令和相同的 url 和机器,它工作得很好。我的代码如下:
dbDriverPtr driver(get_driver_instance());
LOG(trace) << "Starting " << driver->getName();
dbConnectionPtr conn(driver->connect(sql::SQLString("tcp://mydb.abcdef.us-west-2.rds.amazonaws.com:3306"), sql::SQLString("user"), sql::SQLString("password")));
LOG(trace) << "SQL connected to Auth Server";
conn->setSchema("Auth");
dbStatementPtr stmt(conn->createStatement());
dbResultPtr res(stmt->executeQuery("select id,displayname from users order by id desc"));
while (res->next())
{
LOG(trace) << res->getString("id") << ":" << res->getString("displayname");
}
请注意,指针类型只是 auto_ptr 类型定义。
我尝试了 tcp 的变体、端口,并将 url 解析为 ip( 确实 不起作用),唯一的一致性是失败。我在这里错过了什么?
我应该注意,我使用的是默认的 ubuntu 14.4 64 位服务器实例。
为由此而来的任何人更新。原来和aws没关系,是我的build configuration。我正在静态链接 boost 库并动态链接其他库。不知何故搞砸了我的 dns 东西,以至于 getaddrinfo 失败了。
我正在用 C++ 编写服务器应用程序,它将从 EC2 实例连接到 RDS 实例并执行一般的数据库操作。我已经在该软件上工作了几个星期,今天我遇到了需要连接到数据库并与一些数据交互的步骤。我似乎无法连接它,每次我得到一个异常说 Unknown MySQL server host
(代码 2005),但奇怪的是我可以在 ssh 中使用 mysql 命令和相同的 url 和机器,它工作得很好。我的代码如下:
dbDriverPtr driver(get_driver_instance());
LOG(trace) << "Starting " << driver->getName();
dbConnectionPtr conn(driver->connect(sql::SQLString("tcp://mydb.abcdef.us-west-2.rds.amazonaws.com:3306"), sql::SQLString("user"), sql::SQLString("password")));
LOG(trace) << "SQL connected to Auth Server";
conn->setSchema("Auth");
dbStatementPtr stmt(conn->createStatement());
dbResultPtr res(stmt->executeQuery("select id,displayname from users order by id desc"));
while (res->next())
{
LOG(trace) << res->getString("id") << ":" << res->getString("displayname");
}
请注意,指针类型只是 auto_ptr 类型定义。
我尝试了 tcp 的变体、端口,并将 url 解析为 ip( 确实 不起作用),唯一的一致性是失败。我在这里错过了什么?
我应该注意,我使用的是默认的 ubuntu 14.4 64 位服务器实例。
为由此而来的任何人更新。原来和aws没关系,是我的build configuration。我正在静态链接 boost 库并动态链接其他库。不知何故搞砸了我的 dns 东西,以至于 getaddrinfo 失败了。