Я программирую серверное приложение на 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 бит по умолчанию.