Это моя установка (номера IP вымышленные, конечно):MySQLi игнорирует параметр хоста
Сервер (10.0.0.1)
хостов база данных называется database1
с пользователем db_user
и пароля db_pass
. У этого пользователя есть доступ к базе данных, и удаленные подключения с любого хоста разрешены (я знаю, что это утечка, и я исправлю ее, когда она будет работать)
Обновление 1: Этот сервер не обнаруживает признаков получения соединения (например, connection refused
или что-то в этом роде) Порт 3306 открыт
Сервер B (20.0.20.0) хостов PHP скрипт, который подключается к базе данных с помощью следующей команды:
$connection = mysqli_connect("10.0.0.1","db_user","db_pass","database1",3306);
Мой журнал на Сервер B говорит:
Access denied for user 'db_user'@'20.0.20.0' (using password: YES) in <path-to-php-file> in line 42
Номер строки соответствует утверждению, поэтому это действительно утверждение, выше которого не удается.
Почему? Я явно указан IP от сервера A (также пытался server-a.com
вместо 10.0.0.1)
Update 2: Я побежал следующий запрос через командную строку, как MySQL-Root и это выход:
mysql> SHOW GRANTS FOR 'db_user';
GRANT USAGE ON *.* TO 'db_user'@'%' IDENTIFIED BY PASSWORD '<password hash>'
GRANT ALL PRIVILEGES ON `database1`.* TO 'db_user1'@'%'
Кажется верным мне. Меня удивляет, что в журнале B он показывает свой адрес (адрес B) вместо A, где находится база данных. Моя идея заключается в том, что он пытается подключиться к базе данных на сервере B, где нет пользователя MySQL db_user.
Update 3: я подключен через SSH к серверу B и побежал mysql --host=10.0.0.1 -udb_user -p
и ввел пароль => он работал. SHOW GRANTS FOR current_user;
ответил так же, как на сервере A.
20.0.20.0 - это IP-адрес клиента, который пытается подключиться. У вас нет разрешений на подключение, удаленное подключение отключено или данные проверки подлинности неверны. – Allkin
@Allkin, пожалуйста, прочитайте мой вопрос полностью. Я заявил, что на серверах разрешены соединения от ЛЮБОГО хоста. Имя пользователя и пароль скопированы, поэтому я не ожидаю никаких ошибок. – DBX12
Пробовал ли вы без установки 3306, который, кажется, по умолчанию – RST