Não consegue mais acessar o MySQL como root?


8

Parece que não consigo mais fazer login no MySQL (na verdade MariaDB) como usuário root no Ubuntu 15.04 (atualizei de 14.04 para 14.10)

Eu já tentei redefinir a senha.

O que está funcionando é sudo mysql- mas eu quero fazer login como root de outro usuário usando mysql -uroot -p. Quando crio um novo usuário com todos os direitos e senha, ele está funcionando.

Alguma coisa mudou?


ehm ... "mas eu quero fazer login como root" Para mim (!) nunca houve uma razão para isso. Você pode configurar o sistema para qualquer outro usuário de raiz e fazer o mesmo a partir desse usuário se você quiser ;-)
Rinzwind

@Rinzwind Muitos motivos para fazer login como root em um banco de dados . É a única maneira de gerenciar usuários, bancos de dados, etc. Não há mecanismo interno do sudo.
Oli

@oli usamos outro usuário para isso. ie o acesso com "root" só é possível quando se usa "sudo su" para redefinir o mysql, mas esse não requer autenticação.
Rinzwind 9/09/15

Respostas:


6

Então você passou da versão 5.5.44-1ubuntu0.14.04.1para 10.0.20-0ubuntu0.15.04.1. Parece mais assustador do que é, foi o que chamaram de 5.6 por algum motivo .

Parece que as versões mais recentes do MariaDB adicionaram um plug-in à tabela do usuário para forçar a autenticação por um caminho fixo. Nesse caso, o rootusuário do banco de dados é forçado através do unix_socketplug - in . Isso também parece ser conhecido como auth_socketem alguns círculos.

De qualquer forma, este plug-in restringe as coisas, para que apenas o rootusuário do sistema possa efetuar login como banco de dados root, sem senha. É uma escolha de segurança que eles fizeram.

Você pode reverter isso apagando o campo do plug-in para o rootusuário :

shell$ sudo mysql -u root

[mysql] use mysql;
[mysql] update user set plugin='' where User='root';
[mysql] flush privileges;

Uma senha especificada deve funcionar depois disso. Não sei ao certo como isso é aconselhável.


Depois disso, o login via sudo mysql -u rootnão é mais possível. Isso significa /etc/mysql/debian.confque também deve ser adaptado.
Alex

4
não funcionou para mim. Depois disso, eu não conseguia mais acessar o 'sudo mysql -u root'.
MrSmith42
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.