Você pode forçar o MySQL / MariaDB a definir sua senha de root iniciando o processo como root (sem rede) e efetuando login sem senha, em seguida executando um ALTER USER
para alterar a senha de root. A maior parte disso eu li aqui . O procedimento é ligeiramente diferente no MariaDB, mas deve ser sintaticamente equivalente.
Eu só tive que fazer isso na comunidade MySQL 5.7.18 (no Fedora 24), então ele é conhecido por trabalhar em pelo menos um sistema.
- Pare as instâncias de
mysqld
enviando-asSIGTERM
(por exemplo, atéhtop
) ou desligando-as do seu gerenciador de serviços (sudo systemctl stop mysqld.service
) -
Inicie o MySQL como o usuário raiz do sistema e bifurque-o no plano de fundo com:
$ sudo mysqld --skip-grant-tables --skip-networking --user=root &
-
Agora que o MySQL está rodando (e terrivelmente vulnerável, daí o argumento
--skip-networking
), faça o login nele:$ sudo mysql -u root
-
Carregue a tabela de usuários do MySQL para que possamos editá-la:
mysql> FLUSH PRIVILEGES;
-
Defina uma nova senha para o usuário root do MySQL. Certifique-se de escapar corretamente de qualquer personagem engraçado.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'correct \'horse\' battery staple'; mysql> exit;
-
Envie ao MySQL outro
SIGTERM
:$ sudo kill 'cat /var/run/mysqld/mysqld.pid'
-
Inicie o MySQL normalmente novamente:
$ sudo systemctl start mysqld.service
-
Verifique se você pode fazer login com a senha do usuário root do MySQL:
$ mysql -u root -p
Você será solicitado a inserir a senha e voilà!