Łą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?
petwho
źródło

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ć [email protected]( jak sprawdzić, który użytkownik jestem zalogowany jak w MySQL? )

Spróbuj !!!

RolandoMySQLDBA
źródło