mysqlnd дает разрешение «отказано» для всех подключений к удаленному хосту - PullRequest
0 голосов
/ 29 января 2020

Это не о 'localhost'. И версия командной строки 'mysql', и сценарий, который я написал в Perl (используя perl -DBD- MySQL), могут войти в систему, получить доступ к этой базе данных и работать с ней. Только PHP дает ошибку «Отказано в разрешении», и эта ошибка не сообщается ни в одном из различных файлов журнала. Я даже дошел до создания простого тестового пользователя в базе данных, чтобы избежать проблем со специальными символами в пароле:

создать пользователя 'web' @ '%', идентифицированного как 'Iamnotarobot';

и снова командная строка может войти в систему с этими учетными данными, но PHP говорит, что разрешение отклонено.

Я не знаю, что вызывает ошибку, поэтому я не могу ее исправить. Я буквально потерян. Соответствующая информация: RHEL 8 = 4.18.0 php 7.2.11 nginx 1.14.1

А вот фактический код, который не работает:

<?php
$host="core";
$user="web";
$pass="Iamnotarobot";
$db="mydb";

$conn = new mysqli($host,$user,$pass,$db);
if( $conn->connect_errno ) {
  exit($conn->connect_errno);
}
?>

Ответы [ 3 ]

0 голосов
/ 29 января 2020

что было сообщение от mysqli-> error ()? Это даст нам более подробную информацию о том, почему это не удается.

0 голосов
/ 31 января 2020

Оказалось, что это linux проблема. Вот как я это исправил: setsebool -P httpd_can_network_connect_db 1

Теперь, когда setenforce вернулся к '1', страница все еще может попасть в базу данных.

0 голосов
/ 29 января 2020

Проверьте с помощью php - mysql установки пакета.

Если perl может подключиться удаленно, а php не может ... проблема связана только с установкой php - mysql .

...