2015-01-17 2 views
0

Я программирую серверное приложение на C++, которое будет подключаться к экземпляру RDS из экземпляра EC2 и делать свой средний материал базы данных. Я работаю над программным обеспечением в течение нескольких недель, и сегодня я нахожусь на шаге, где мне нужно подключиться к db и взаимодействовать с некоторыми данными. Кажется, я не могу подключиться, каждый раз, когда получаю исключение, говорящее Unknown MySQL server host (код 2005), но странная часть заключается в том, что я могу использовать команду mysql в ssh с тем же URL-адресом и машиной, и она работает нормально. Мой код выглядит следующим образом:Веб-службы Amazon и соединитель mysql C++ не могут подключаться к экземпляру RDS из EC2 instace

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 typedefs.

Я пробовал варианты tcp, порт и разрешение URL-адреса на ip (что действительно не работал), и единственная последовательность была неудачной. Что мне здесь не хватает?

Следует отметить, что я использую экземпляр сервера ubuntu 14.4 64 бит по умолчанию.

ответ

0

Обновление для всех, кто приходит от этого. Это не имело никакого отношения к aws, но моя конфигурация сборки. Я статически связывал библиотеки boost и динамически связывал других. Каким-то образом это пришло мне в голову, так что getaddrinfo терпел неудачу.

Смежные вопросы