Обычно я запускаю mysql, используя что-то вроде этого:
mysql -h hostname -u user -p
(and then type password here)
но я хотел знать, как это связано с таблицей mysql.user. Когда я вхожу в mysql, а затем запускаю:
select user,host from mysql.user
база данных, в которую я вхожу, имеет много разных IP-адресов для хоста. Обычно я вижу только '%' или 'localhost', но я обращаюсь к базе данных, которая имеет много разных IP-адресов (я изменил IP-адреса с настоящих по соображениям безопасности, но они выглядят так):
| user | host |
-------------------------------------
| user_1 | 54.211.18.65 |
| user_support | 32.162.28.13 |
| user_admin | 33.167.1.142 |
| user_super | 35.161.72.123 |
Кроме того, когда я пытаюсь получить доступ к user_1 с помощью mysql cli:
mysql -h mysql.example.com -u user_1 -p
он разрешает mysql.example.com как мой собственный ip, даже когда dig показывает другой ip, в основном так же, как этот вопрос . Пожалуйста, помогите понять разницу между параметром хоста -h и хостом в таблице mysql.user.
В -h
в mysql
командная строка - это хост, к которому вы подключаетесь. В host
в mysql.user
table - это хост, с которого сервер будет аутентифицировать пользователя.
Рекомендуется использовать только IP-адреса в mysql.user
(он же CREATE USER
) (и skip-name-resolv
включен), поскольку обратный DNS - это медленный и ненадежный механизм аутентификации.