Não é possível logar no mysql após configurar privilégios / host mysql incorretos

1

No CentOS 5.x eu usei o painel webmin e eu estava nas configurações do mysql, eu estava tentando permitir que o "root" fizesse login a partir do meu ip home, além do localhost. Na lista de hosts eu tinha "any" ou "localhost", eu tentei fazer com que "localhost, 84.xx.xx.xx" achasse que permitiria que eu fizesse login no meu computador local com o programa de administrador mysql.

Depois de salvar os dados inseridos, não posso fazer muito no mysql

Webmin diz DBI connect failed : Access denied for user ''@'localhost' to database 'mysql'

No SSH, o mysql diz ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

Meu palpite é que o mysql não permite mais que o root se conecte a partir de qualquer host, porque eu digitei hosts incorretos.

Eu tentei desinstalar e reinstalar o mysql, mas nenhuma mudança. Existe uma maneira de redefinir isso? Não tenho dados do banco de dados, posso excluir todos, se necessário.

Obrigado.

    
por adrianTNT 12.01.2012 / 13:01

2 respostas

5

Faça o login em um terminal como root e pare o daemon mysql.

/etc/init.d/mysqld stop

Em seguida, inicie o daemon mysql e pule as tabelas de permissões que armazenam as senhas e outras informações privilegiadas

mysqld_safe --skip-grant-tables &

Você deverá ver o mysqld iniciar com sucesso. Agora você deve poder se conectar ao mysql sem uma senha.

mysql --user=root mysql

e, em seguida, atualize as informações relevantes:

update user set Password=PASSWORD('new-password') where user='root';
flush privileges;
exit;

e então reinicie o daemon mysql como você faria normalmente

/etc/init.d/mysqld restart

Veja também a documentação do MySQL para ajudá-lo se você ficar preso

    
por 12.01.2012 / 13:20
1

Você precisa iniciar o mysql com a opção --skip-grant-tables . Dê uma olhada em esta página . Depois disso, você deve ser capaz de se conectar ao banco de dados mysql. Você pode corrigir o erro.

    
por 12.01.2012 / 13:19