Я пытаюсь установить соединение с сервером MySQL на удаленном хосте. Обе машины работают под управлением RH 7.5 и MySQL 5.7.
Я могу подключиться к серверу как пользователь root. Я сделал это и использовал его, чтобы настроить вторичного пользователя следующим образом:
CREATE USER 'foo'@'client-ip-address' identified by 'my-password';
, а затем
GRANT ALL PRIVILEGES ON my-db.* to 'foo'@'client-ip-addres';
Все прошло хорошо. Но к моему удивлению, когда я попытался подключиться с помощью этого нового пользователя, я получил ошибку, к которой я не привык:
$ mysql -u foo -h server-ip-address -pmy-password my-db
Access denied for user 'foo'@'some-hostname-not-an-ip.com' (using password: YES)
Я знаю IP-адрес клиента (к которому я подключаюсь из ), поэтому я настроил пользователя с этим значением в столбце «хост» на сервере. Но клиент, очевидно, пытается установить соединение, используя значение для «хоста», которое не является IP-адресом. Вместо этого это какое-то имя хоста, а не IP-адрес.
Откуда берется это значение? Как mysql определяет свой собственный хост, когда он пытается подключиться к удаленному серверу? В прошлом я видел только, чтобы он использовал собственный IP-адрес машины.