O akonadi do KDE define a senha root do mysql para um valor não vazio e não consigo encontrá-lo

3

Recentemente, configurei um openSUSE 12.2 vm e escolhi o KDE como desktop. O KDE (4.3) vem com um aplicativo chamado 'akonadi' que usa mysql. O resultado é que o mysql parece vir pré-configurado com uma senha root não vazia. A razão pela qual eu configurei um openSUSE vm é que eu escrevi um script de instalação para algum software e quero que ele funcione no openSUSE. No fedora / rh, eu posso antecipar o mysql sendo instalado com uma senha de root vazia e então fazer com que o usuário execute mysql_secure_installation. No debian / ubuntu, o debconf faz o usuário digitar a senha root do mysql durante a instalação do servidor mysql. Mas eu provavelmente sempre escolhi o gnome antes, então talvez isso não funcionasse se eu escolhesse o kde.

De qualquer forma, minha pergunta se resume a: Realmente? O kde realmente define uma senha root não vazia ao configurar o mysql para o akonadi? e realmente? É realmente mais difícil do que googling descobrir o que é definido? E, finalmente, (cabeça baixa) alguém pode me dizer como descobrir isso?

Obrigado!

Jason

    
por Jason 24.11.2012 / 22:27

1 resposta

0

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.

  1. Pare as instâncias de mysqld enviando-as SIGTERM (por exemplo, até htop ) ou desligando-as do seu gerenciador de serviços ( sudo systemctl stop mysqld.service )
  2. 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 &
    
  3. Agora que o MySQL está rodando (e terrivelmente vulnerável, daí o argumento --skip-networking ), faça o login nele:

    $ sudo mysql -u root
    
  4. Carregue a tabela de usuários do MySQL para que possamos editá-la:

    mysql> FLUSH PRIVILEGES;
    
  5. 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;
    
  6. Envie ao MySQL outro SIGTERM :

    $ sudo kill 'cat /var/run/mysqld/mysqld.pid'
    
  7. Inicie o MySQL normalmente novamente:

    $ sudo systemctl start mysqld.service
    
  8. 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à!

    
por 21.04.2017 / 23:05