Назад | Перейти на главную страницу

Удаленный сервер не может получить доступ к базе данных RDS

У меня проблемы с доступом к базе данных MySQL Amazon RDS с моего сервера.

Я получаю это: -

[Thu Sep 22 13:45:33 2011] [error] [client xx.xx.xx.xx] PHP Warning:  mysqli::mysqli() [<a href='function.mysqli-mysqli'>fqli-mysqli</a>]: (HY000/2003): Can't connect to MySQL server on 'xxxx-1.rds.amazonaws.com' (110) xxx.php on line 22, referer: xxx**

Я пробовал вручную получить доступ через cmdline на сервере с помощью: -

mysql -h xxxx.rds.amazonaws.com -p --port = 3306

Затем я спрашиваю пароль, который я ввожу, и он зависает и говорит

ОШИБКА 2003 (HY000): не удается подключиться к серверу MySQL на 'xxxx.rds.amazonaws.com' (110)

Это проблема, связанная с портом и / или брандмауэром? Если да, то к чему я должен обратиться?

Это потому, что я уже запускаю mysql srvr на этом компьютере, на порту 3306?

Возможные причины: - брандмауэр блокирует доступ к порту 3306 - сервер базы данных не работает на порте по умолчанию (3306) - демон MySQL настроен на прием соединений только с локального хоста, а не с удаленного хоста. (можно проверить с помощью netstat -ntlp).

У меня была такая же проблема при попытке подключиться к удаленной базе данных mysql.

Я исправил это, открыв брандмауэр на сервере db, чтобы пропустить трафик:

sudo ufw allow mysql

Я думаю, что ваша группа безопасности экземпляра ec2 должна иметь исходящий {All TCP} и выбрать место назначения в любом месте или на свой IP-адрес.

Серверы RDS не являются общедоступными. Если вы попытаетесь пропинговать URL-адрес конечной точки, вы увидите, что он возвращает частный (локальный адрес в подсети БД), а не общедоступный IP-адрес.

Поскольку вы не можете присоединить эластичный IP-адрес к RDS (и не должны этого делать, поскольку он будет привязан к сетевому интерфейсу, а не к конечной точке подключения), у вас есть два варианта доступа к удаленному RDS.

A) Используйте туннель SSH. B) Создайте VPC с общедоступной подсетью и используйте преобразование сетевых адресов для маршрутизации подключений к частной подсети. Вы должны направить соединение через эластичный балансировщик нагрузки, чтобы избежать единой точки отказа.