1

Я подключил MySQL на Mac OS X с помощью этой команды:

mysql -u root -p -h 127.0.0.1

После того, как я вошел в систему, я запустил эту команду:

select user();

и это показало:

 root@localhost

и даже проводной, я уже меняю пароль root на 127.0.0.1 с помощью команды SET PASSWORD .

Когда я набрал

show grants for 'root'@'127.0.0.1';

пароль изменился в результате.

Однако мне все еще нужно использовать старый пароль для входа в систему с помощью следующей команды:

mysql -u root -p -h 127.0.0.1

ВОПРОСЫ

  • Не могли бы вы сказать мне, почему это произошло?
  • Здесь что-то не так?

1 ответ1

2

Подключение к MySQL с использованием 127.0.0.1 требует протокола TCP/IP.

Проблема в том, что клиент MySQL пытается перехитрить вас, говоря

  • Если вы укажете 127.0.0.1 и не сообщите мне протокол, я буду использовать сокет и вести себя как соединение локального хоста.
  • Если вы укажете 127.0.0.1 и скажете мне использовать TCP/IP, то я буду использовать соединение TCP/IP

В свете этого вы должны подключиться следующим образом:

mysql -u root -p -h 127.0.0.1 --protocol=tcp

чтобы проверить это, пожалуйста, запустите это после подключения

SELECT USER(),CURRENT_USER();

Оба должны сказать root@127.0.0.1 (как я могу увидеть, какой пользователь вошел как в MySQL?)

Попробуйте!

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