Senha do MariaDB no Debian Stretch
A nova versão estável do Debian, codinome Stretch, vem com o MariaDB como única variante do MySQL. A partir de junho de 2017, quando você instala o pacote mysql-server, na verdade vai ser instalado o MariaDB 10.1.23. Nenhum problema até aí. Mais ou menos.
Na instalação padrão, não é mais possível acessar o terminal do MySQL (ou MariaDB) com o comando mysql -u root -p
. A alternativa é executar como root, com o comando sudo mysql
. Assim, você consegue ver o monitor do MariaDB:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 42
Server version: 10.1.23-MariaDB-9+deb9u1 Debian 9.0
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Depois, para alterar a senha do root, use o comando:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MINHA SENHA');
Se não der certo por algum motivo, e deveria ter dado certo, você pode alterar direto a senha na tabela:
UPDATE mysql.user SET authentication_string = PASSWORD('MINHA SENHA') WHERE User = 'root' AND Host = 'localhost';
Por fim, o MariaDB usa um plugin com um nível a mais de segurança (e segurança nunca é demais) que vamos desabilitar para permitir que as aplicações cliente possam acessar as bases. Veja o plugin que está configurado:
select plugin from mysql.user;
+-------------+
| plugin |
+-------------+
| unix_socket |
+-------------+
Agora, vamos desabilitá-lo:
UPDATE mysql.user SET plugin = '' WHERE User = 'root' AND Host = 'localhost';
Para finalizar, faça o flush dos privilégios:
flush privileges;
Agora deve ser possível conectar novamente sem precisar do sudo com o comando tradicional mysql -u root -p
.