2013-03-01 7 views
2

Я создал два экземпляра AWS и выделил им два разных Эластичных IP-адреса. Один экземпляр используется для сервера базы данных (размещенного в MongoDB), а другой - для размещения веб-сайта.Невозможно подключиться к MongoDB, размещенному на другом сервере - PHP

Я не могу подключиться к серверу через свой PHP-код. Мой код выглядит как в:

try{ 
    $connection = new Mongo('mongodb://107.21.230.121:27017'); 
} 
    catch (MongoConnectionException $exception) 
{ 
    print_r($exception->getMessage()); 
} 

Когда я запускаю этот код на моем сайте, я получаю следующее сообщение об ошибке:

"Failed to connect to: 107.21.230.121:27017: Timed out after 0 ms."

Я проверил сервер, на котором MongoDB работает. Используя оболочку Mongo, я также смог создать несколько коллекций и документов.

Пробовал все виды тактики без успеха. Может ли кто-нибудь предложить мне, где я могу ошибаться в настройке?

+0

Этот хост разрешен для подключения к этой базе данных? Настройка брандмауэра? –

+0

Я не использую брандмауэр. Также не ограничены IP для подключения. –

+0

afo MongoDB связывается только с localhost по умолчанию – mensi

ответ

2

Судя по быстрому и грязному сканированию nmap вашего экземпляра, похоже, что вы не открыли порт (27017) в своих группах безопасности. Это нужно сделать на серверах портов.

+0

Я пробовал все, чтобы открыть порт. Это все, что я пробовал: 1. Остановите службу mongod 2. VI /etc/mongod.conf (добавить мой второй IP адрес сервера к bind_ip) начало 3. Обслуживание mongod 4. IPTables ВХОД -s - p tcp -m tcp --dport 27017 -j ACCEPT Все еще не работает. Я не старый таймер для MongoDB. Просто переходим из MySQL в MongoDB, и это сильно вредит :( –

+0

В группах безопасности на AWS вам нужно открыть порт 27107, это не на самом экземпляре, он находится в консоли ec2. Http: // docs .aws.amazon.com/AWSEC2/последний/UserGuide/с использованием-сети security.html –

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