Я установил экземпляр EC2, на котором установлены mysql и php-mysql (не mysql-server).
Я установил экземпляр RDS и установил группу безопасности для экземпляра EC2.
я жестяная банка подключиться через командную строку из EC2, но когда я пытаюсь подключиться через mysqli, я получаю сообщение: Не удается подключиться к серверу MySQL на «XXXX.xxxxxxx.us-east-1.rds.amazonaws.com»
Я впервые работаю с обоими.
Я что-то упустил?
define("HOST", "XXXX.xxxxxxx.us-east-1.rds.amazonaws.com");
define("DBUSER", "my_user");
define("PASS", "********");
define("DB", "mydb");
define("PORT", 3306);
$link=mysqli_connect(HOST,DBUSER,PASS,DB,PORT);
// Check connection
if (mysqli_connect_errno($link)){
echo "Failure to connect: " . mysqli_connect_error();
}
mysqli_close($link);
Я нашел аналогичная проблема.
Решением было запустить setsebool -P httpd_can_network_connect=1
Мне это помогло:
Я удалил спецификацию порта в своем DSN. Тогда удалось подключить EC2 к RDS.
Ссылка на сайт: https://stackoverflow.com/questions/23955446/sqlstatehy000-2005-unknown-mysql-server-host-mysql1-alwaysdata-com3306-2
Мне пришлось внести изменения в SELinux, моим экземпляром был RHEL6.
setsebool httpd_can_network_connect=1
setsebool httpd_can_network_connect_db on
Что мне показалось странным, так это то, что SELinux не регистрировал ничего необычного в /var/log/audit/audit.log