Я знаю, что есть похожие вопросы, но я не нашел именно то, что искал. Вот что происходит, и это довольно странно:
[root@xxx xxx]# mysql -u profuser -ppwd -h 192.168.1.99
ERROR 1045 (28000): Access denied for user 'profuser'@'192.168.1.99' (using password: YES)
И 192.168.1.99
это мой собственный IP. Но когда я использую localhost
или 127.0.0.1
, все нормально:
[root@xxx xxx]# mysql -u profuser -ppwd -h 127.0.0.1
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 68
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> bye
[root@xxx xxx]# mysql -u profuser -ppwd -h localhost
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 69
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
я нашел этот вопрос, но это не помогло:
mysql> select host from user where user='profuser';
+--------------+
| host |
+--------------+
| 127.0.0.1 |
| 192.168.1.99 |
| localhost |
+--------------+
Я добавил свой IP, как было сказано в другом вопросе.
Подходит ли хэш пароля для новой комбинации пользователь / хост? Настройте свой оператор выбора: select host, password from user where user='profuser';
В любом случае, чего вы пытаетесь достичь? Вы добавляете -h 192.168.1.99
флаг; в этом нет необходимости при локальном подключении (как вы обнаружили). Если вы хотите подключиться по сети, вам понадобится пользовательская спецификация, например 'root'@'192.168.1.%'
или 'root'@'%'
, что-то, что разрешить удаленным хостам; если вы просто выполняете локальные подключения, вам не нужен -h
.
При добавлении хоста вручную с помощью запроса типа INSERT INTO mysql.user ...
, вы должны выпустить FLUSH PRIVILEGES
команда, чтобы применить изменения.