Я установил XAMPP 5.5.24 и создал базу данных для своего приложения и пользователя MySQL для подключения к нему. Однако я столкнулся со следующей проблемой:

Пользователь не смог локально подключиться к MySQL, когда для столбца Host в таблице mysql.user установлено значение % пока я явно не предоставил доступ с localhost .

mysql> select user, host from mysql.user order by user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
|                  | localhost |
|                  | linux     |
| myNewUser        | %         |
| myNewUser        | localhost |
| pma              | localhost |
| root             | localhost |
| root             | linux     |
+------------------+-----------+
7 rows in set (0,00 sec)

Я думал, что % в столбце Host должен разрешать все, включая localhost . Однако без линии | myNewUser | localhost | MySQL отказывается от любого локального соединения (пробовал -h localhost , 127.0.0.1) до указания IP-адреса локальной сети.

iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'myNewUser'@'localhost' (using password: YES)
iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p -h localhost
Enter password: 
ERROR 1045 (28000): Access denied for user 'myNewUser'@'localhost' (using password: YES)
iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p -h 127.0.0.1
Enter password: 
ERROR 1045 (28000): Access denied for user 'myNewUser'@'localhost' (using password: YES)
iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p -h 10.0.1.2
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 133
Server version: 5.6.24 Source distribution

Это нормальное поведение? Или я что-то упустил?

2 ответа2

0

Как упоминалось в @wurtel , соединение с localhost обходит TCP с использованием файла сокета UNIX и поэтому не соответствует ни одному TCP-адресу (%).

Ссылка:Справочное руководство по MySQL 5.7 - 5.2.2 Подключение к серверу MySQL

0

Если вы входите через TCP/IP, вам необходимо указать порт и протокол

mysql -u myNewUser -p -h 10.0.1.2 -p3306 --protocol=tcp

Тогда это должно работать.

Чтобы проверить, когда вы входите в систему, запустите этот

mysql> SELECT USER() AttemptedToLoginAs,CURRENT_USER() MySQLAllowedMeAs;

Если оба AttemptedToLoginAs и MySQLAllowedMeAs говорят myNewUser@% , вы сделали это правильно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .