Łączenie mysql przez 127.0.0.1 zamiast localhost


1

Podłączyłem mysql na Mac OS X za pomocą tego polecenia:

mysql -u root -p -h 127.0.0.1

Po zalogowaniu uruchomiłem polecenie:

select user();

i pokazało:

 root@localhost

a nawet przewodowe, już zmieniam hasło roota na 127.0.0.1 za pomocą SET PASSWORDpolecenia.

Kiedy wpisałem

show grants for 'root'@'127.0.0.1';

hasło zmieniło się w wyniku.

Jednak nadal muszę używać starego hasła, aby zalogować się za pomocą następującego polecenia:

mysql -u root -p -h 127.0.0.1

PYTANIA

  • Czy możesz mi powiedzieć, dlaczego tak się stało?
  • Czy coś tu jest nie tak?

Odpowiedzi:


2

Połączenie z MySQL przy użyciu 127.0.0.1 wymaga protokołu TCP / IP.

Problem polega na tym, że klient mysql próbuje przechytrzyć cię mówiąc

  • Jeśli podasz 127.0.0.1 i nie podasz mi protokołu, użyję gniazda i zachowam się jak połączenie localhost.
  • Jeśli podasz 127.0.0.1 i powiesz mi, żebym używał TCP / IP, TO użyję połączenia TCP / IP

W związku z tym musisz połączyć się w następujący sposób:

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

aby to sprawdzić, uruchom to po podłączeniu

SELECT USER(),CURRENT_USER();

Obaj powinni powiedzieć root@127.0.0.1( jak sprawdzić, który użytkownik jestem zalogowany jak w MySQL? )

Spróbuj !!!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.