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 失败了。