Hoje fiz um login como root no Ubuntu 14.04.1 LTS ll
e então apt-get install mariadb-server
(sem sudo, mas como root).
Com mySQL -h localhost -u root --password=<PW>
eu tenho
Acesso negado para o usuário 'root' @ 'localhost' (usando senha: SIM)
Com mySQL -u root -p
eu entrei no banco de dados e fiz
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<PW>';
FLUSH ALL PRIVILEGES;
Mas isso não ajudou. Você tem alguma ideia? Não encontrei resposta para perguntas semelhantes.
Respostas:
TL; DR: Para acessar versões mais recentes de mysql / mariadb após como usuário root, após uma nova instalação, você precisa estar em um shell de root (ou seja
sudo mysql -u root
, oumysql -u root
dentro de um shell iniciado porsu -
ousudo -i
primeiro)Tendo acabado de fazer a mesma atualização, no Ubuntu, tive o mesmo problema.
O que era estranho era que
Aceitaria minha senha e permitiria que eu a definisse, mas não consegui fazer login como
root
por meio domysql
clienteEu tive que começar o mariadb com
para obter acesso como root, enquanto todos os outros usuários ainda podem acessar corretamente.
Olhando para a
mysql.user
tabela, notei que para root aplugin
coluna está configurada paraunix_socket
enquanto todos os outros usuários estão configurados para 'mysql_native_password'. Uma olhada rápida nesta página: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ explica que o Unix Socket permite o login combinandouid
o processo que executa o cliente com o do usuário nomysql.user
tabela. Em outras palavras, para acessar o mariadb,root
você precisa estar logado como root.Com certeza reiniciando meu daemon mariadb com autenticação necessária, posso fazer o login como root com
ou
Tendo feito isso pensei em como acessar sem ter que fazer o sudo, que é apenas uma questão de executar essas consultas mysql
(substituindo
<password>
pela senha de root do mysql desejada). Esta senha habilitada faz login para o usuário root.Como alternativa, execute a consulta mysql:
Irá mudar a conta root para usar login com senha sem mudar a senha, mas isso pode deixar você com uma instalação mysql / mariadb sem senha root.
Depois de qualquer um desses, você precisa reiniciar o mysql / mariadb:
E voila, tive acesso de minha conta pessoal via
mysql -u root -p
OBSERVE QUE FAZER ISSO ESTÁ REDUZINDO A SEGURANÇA Presumivelmente, os desenvolvedores do MariaDB optaram por ter o acesso root funcionando assim por um bom motivo.
Pensando nisso, estou muito feliz de ter que fazer
sudo mysql -u root -p
isso, então estou voltando para isso, mas pensei em postar minha solução porque não consegui encontrar nenhuma em outro lugar.fonte
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
comando duas vezes antes de liberar privvies?sudo service mysql restart
No Ubuntu 16.04 LTS limpo, o login raiz do MariaDB para localhost mudou de estilo de senha para estilo de login sudo ...
então, apenas faça
já que queremos fazer o login com senha, crie outro usuário 'usuário'
no console MariaDB ... (você obtém no console MariaDB com 'sudo mysql -u root')
em seguida, no prompt do shell bash,
e você pode fazer o login com 'usuário' com 'sua senha' no localhost
fonte
Experimente o comando
pressione Enter e atribua uma nova senha para root em mysql / mariadb .
Se você receber um erro como
habilitar o serviço com
agora se você entrar novamente com
se você seguir o problema, entre com
sudo su
emysql -u root -p
agora aplique as permissões para rootGRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<password>';
isso corrigiu meu problema no MariaDB .
Boa sorte
fonte
resposta aceita do superusuário :
fonte
Eu tive que estar logado no Ubuntu como root para acessar o Mariadb como root. Pode ter algo a ver com o "Harden ..." que ele solicita que você faça na primeira instalação. Assim:
e você está dentro.
fonte
O novo comando para liberar os privilégios é:
FLUSH PRIVILEGES
O antigo comando
FLUSH ALL PRIVILEGES
não funciona mais.Você receberá um erro semelhante a este:
MariaDB [(none)]> FLUSH ALL PRIVILEGES; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ALL PRIVILEGES' at line 1
Espero que isto ajude :)
fonte
Execute mysql_upgrade.
Verifique isso
diz
Verifique se a tabela existe _mysql.proxies_priv_.
Acesso negado para o usuário 'root' @ 'localhost' ao tentar conceder privilégios. Como concedo privilégios?
fonte
Sistema como o Ubuntu prefere usar o plugin auth_socket . Ele tentará autenticar comparando seu nome de usuário no banco de dados e o processo que faz a solicitação do mysql; está descrito aqui
Em vez disso, você pode querer voltar com mysql_native_password , que exigirá usuário / senha para autenticação.
Sobre o método para conseguir isso, eu recomendo isso .
fonte