Eu sei que este é um tópico antigo, mas queria adicionar mais alguns pontos:
Três usuários root são gerados por padrão quando você cria um banco de dados pela primeira vez. Todos são criados sem senhas. Nesse momento, a instalação também recomenda que você defina uma senha executando mysqladmin -u root password
, o que mudará a senha para 'root' @ '%'.
Os dois que ainda não possuem senhas são locais para o host especificado na coluna Host; Em ambos os casos, é o servidor de banco de dados real. Ambos têm acesso total ao banco de dados por padrão. Pode-se supor corretamente que, em muitos casos, se você fosse capaz de efetuar login na máquina (o que seria necessário para usar uma dessas contas raiz), provavelmente terá acesso aos arquivos reais no disco. Portanto, ter senhas nelas pode não gerar segurança real.
Por isso, prefiro remover essas contas padrão e manter as contas com senha.
DELETE FROM mysql.user WHERE Password=''; FLUSH PRIVILEGES