Conectando o mysql via 127.0.0.1 em vez de localhost

1

Eu conectei o mysql no Mac OS X usando este comando:

mysql -u root -p -h 127.0.0.1

Depois de fazer login, ativei este comando:

select user();

e mostrou:

 root@localhost

e mesmo com fio, eu já mudei a senha de root no 127.0.0.1 via comando SET PASSWORD .

Quando eu digitei

show grants for 'root'@'127.0.0.1';

a senha foi alterada no resultado.

No entanto, ainda preciso usar a senha antiga para fazer login com o seguinte comando:

mysql -u root -p -h 127.0.0.1

PERGUNTAS

  • Você poderia me dizer por que isso aconteceu?
  • Há algo de errado aqui?
por petwho 09.05.2013 / 06:00

1 resposta

2

Conectar-se ao MySQL usando 127.0.0.1 requer o protocolo TCP / IP.

O problema é que o cliente mysql tenta enganar você dizendo

  • Se você especificar 127.0.0.1 e não me informar o protocolo, usarei o soquete e me comportarei como uma conexão localhost.
  • Se você especificar 127.0.0.1 e me informar para usar o TCP / IP, ENTÃO usarei uma conexão TCP / IP

Em vista disso, você deve se conectar da seguinte maneira:

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

para verificar isso, por favor, execute isso depois de conectar

SELECT USER(),CURRENT_USER();

Ambos devem dizer [email protected] ( como eu vejo em qual usuário estou logado como no MySQL? )

Experimente!

    
por 09.05.2013 / 20:02

Tags