Para responder à sua pergunta sobre "localhost" você precisa entender um pouco sobre os usuários do MySQL.
Um usuário no MySQL é, na verdade, composto de duas coisas:
- o nome de usuário
- um local de rede
Assim, o usuário 'root'@'localhost'
cria um login de usuário para raiz para efetuar login no host local. Comigo até agora?
Você está realmente vendo isso acontecer porque, se você não especificar um host, seu cliente MySQL terá como padrão conectar-se a uma instância do MySQL em execução no host local.
Então, do ponto de vista dos servidores MySQL, a tentativa de login é iniciada pela raiz vindo do localhost, portanto 'root'@'localhost'
.
Em relação à sua senha, parece que lembro que algumas versões do cliente precisam que você use --password
not -p
se estiver especificando a senha na linha de comando.