Estou trabalhando no Xubuntu 15.04. Eu já instalei o MariaDB-Server em vários sistemas e sempre fui solicitada uma senha root durante a instalação. Desta vez, no entanto, não me lembro de ter sido solicitada a senha. Quando tento fazer login sem uma senha (ou uma senha em branco), recebo o Access denied for user 'root'@'localhost'
erro. Eu tentei desinstalar o pacote completamente
sudo apt-get remove mariadb-server
sudo apt-get purge mariadb-server
Quando reinstalei, ainda não recebi a senha de root.
Eu tentei a mysqld --skip-grant-tables
abordagem do
mysql como corrigir o acesso negado para o usuário 'root' @ 'localhost' . Posso modificar a senha do usuário root no banco de dados mysql - pelo menos, o valor do hash é alterado - mas ainda não consigo fazer login com a nova senha após uma reinicialização do servidor mysql. Ainda obtenho o mesmo erro.
O usuário debian-sys-maint não existe. Portanto, não posso usá-lo para consertar nada.
Alguma idéia do que mais eu poderia tentar?
Respostas:
Você precisa redefinir a senha. então para isso
fonte
plugin: auth_socket
está ativada, por padrão. Em outras palavras, não há necessidade de usar o--skip-grant-tables
que seria necessário nas versões anteriores do MySQL. (Além disso, tecnicamente, essa medida não está "redefinindo a senha"; está desabilitando um plug-in.) #A idéia com a nova configuração é que você não deve usar senhas. Consulte o plugin de autenticação UNIX_SOCKET para obter detalhes.
O que é especialmente relevante é o conteúdo de /usr/share/doc/mariadb-server-10.0/README.Debian.gz no Ubuntu 16.04:
Portanto, se você desativar esse plug-in para root e definir uma senha, o trabalho diário do cron será interrompido, pois pressupõe que ele efetue login como root sem uma senha, mas com o plug-in.
Depois diz:
Portanto, parece que as senhas não devem mais ser usadas pelos aplicativos.
fonte
"So if you disable that plug-in for root and set a password, the daily cron job will break as it's assuming it will log in as root without a password..."
A implicação não óbvia do plug-in de autenticação UNIX_SOCKET que está sendo ativado (que agora é o padrão) é a capacidade de se autenticar como usuário do banco de dados raiz com uma senha desativada. Em nenhum lugar do mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin está mencionada essa limitação considerável. Portanto, é impossível fazer login como root, por exemplo, através do SSH.Resolvi o problema seguindo a resposta deste post:
Não é possível redefinir a senha de root do MySQL (MariaDB)
É necessário alterar o campo do plugin mysql.user para todas as raízes para uma string em branco.
fonte
Eu fiz isso executando este comando, logo após a instalação:
Na primeira etapa, a senha está em branco, então pressione Enter.
fonte
Eu tive o mesmo problema em um raapberry pi com estiramento. Minha solução foi criar um novo usuário com todos os privilégios, fazendo o seguinte:
Agora eu posso fazer o login e o usuário "admin" como superusuário.
Espero que isso ajude alguém.
fonte
Basta usar
sudo mysql -u root
- é issoDetalhes: As versões mais recentes são autenticadas no mysql usando a autenticação do sistema. Portanto, se você pode sudo para o sistema operacional, ele assume que você também é db root. Você pode confirmar isso emitindo
sudo mysql -u root -e "USE mysql; SELECT User, Host, plugin FROM mysql.user;"
. Você deve ver algo assim (talvezauth_socket
em outras distros)fonte