$ ./mysqladmin -u root -p ' redigido '
Digite a senha:
mysqladmin: falha na conexão com o servidor em 'localhost':
'Acesso negado para o usuário' root '@' localhost '(usando a senha: YES)'
Como posso consertar isso?
mysql
sql
database
database-connection
Harsh Trivedi
fonte
fonte
~/.my.cnf
arquivo se existir .-p
opção sozinha e o mysql solicitará uma senha.Respostas:
/etc/my.cnf
ou/etc/mysql/my.cnf
, dependendo da sua distribuição.skip-grant-tables
em[mysqld]
mysql -u root -p
mysql> flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
mysql -u root -p
fonte
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 'USER 'root'@'localhost' IDENTIFIED BY 'NewPassword'' at line 1
set PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
Eu fiz isso após o passo 5. Aqui é como meu prompt de saída do comando olhou:MariaDB [(none)]> MariaDB [(none)]> set PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); Query OK, 0 rows affected (0.00 sec)
sudo systemctl restart mariadb
Todas as soluções que encontrei eram muito mais complexas do que o necessário e nenhuma funcionou para mim. Aqui está a solução que resolveu meu problema. Não há necessidade de reiniciar o mysqld ou iniciá-lo com privilégios especiais.
Com uma única consulta, estamos alterando o auth_plugin para mysql_native_password e configurando a senha root como root ( fique à vontade para alterá-la na consulta)
Agora você deve conseguir fazer login com root. Mais informações podem ser encontradas na documentação do mysql
(saia do console mysql com Ctrl + D ou digitando exit )
fonte
Eu tentei várias etapas para corrigir esse problema. Existem tantas fontes para possíveis soluções para esse problema que é difícil filtrar o sentido das bobagens. Finalmente encontrei uma boa solução aqui :
Etapa 1: identificar a versão do banco de dados
Você verá uma saída como esta com o MySQL:
Ou imprima assim para o MariaDB:
Anote qual banco de dados e qual versão você está executando, como você os usará mais tarde. Em seguida, você precisa interromper o banco de dados para acessá-lo manualmente.
Etapa 2: Parando o servidor de banco de dados
Para alterar a senha root, você deve desligar o servidor de banco de dados antecipadamente.
Você pode fazer isso no MySQL com:
E para MariaDB com:
Etapa 3: Reiniciando o servidor de banco de dados sem verificação de permissão
Se você executar o MySQL e o MariaDB sem carregar informações sobre os privilégios do usuário, ele permitirá que você acesse a linha de comando do banco de dados com privilégios de root, sem fornecer uma senha. Isso permitirá que você obtenha acesso ao banco de dados sem saber.
Para fazer isso, é necessário parar o banco de dados de carregar as tabelas de concessão, que armazenam informações sobre privilégios do usuário. Como esse é um risco à segurança, você também deve pular a rede também para impedir que outros clientes se conectem.
Inicie o banco de dados sem carregar as tabelas de concessão ou ativar a rede:
Oe comercial no final deste comando fará com que esse processo seja executado em segundo plano, para que você possa continuar usando o seu terminal.
Agora você pode se conectar ao banco de dados como usuário root, o que não deve solicitar uma senha.
Você verá imediatamente um prompt de shell do banco de dados.
Prompt do MySQL
Prompt do MariaDB
Agora que você tem acesso root, pode alterar a senha root.
Etapa 4: Alterando a senha root
Agora podemos alterar a senha do root.
Para o MySQL 5.7.6 e mais recente , bem como o MariaDB 10.1.20 e mais recente , use o seguinte comando:
Para o MySQL 5.7.5 e anterior , bem como o MariaDB 10.1.20 e anterior , use:
Certifique-se de substituir
new_password
por sua nova senha de escolha.Nota: Se o
ALTER USER
comando não funcionar, geralmente é indicativo de um problema maior. No entanto, você pode tentarUPDATE ... SET
redefinir a senha root.[IMPORTANTE] Esta é a linha específica que corrigiu meu problema específico:
Lembre-se de recarregar as tabelas de concessão depois disso.
Em qualquer um dos casos, você deverá ver a confirmação de que o comando foi executado com sucesso.
A senha foi alterada; portanto, agora você pode parar a instância manual do servidor de banco de dados e reiniciá-la como antes.
Etapa 5: reiniciar o servidor de banco de dados normalmente
O tutorial segue algumas etapas adicionais para reiniciar o banco de dados, mas a única peça que usei foi esta:
Para o MySQL, use: $ sudo systemctl start mysql
Para MariaDB, use:
Agora você pode confirmar que a nova senha foi aplicada corretamente executando:
O comando agora deve solicitar a senha recém-atribuída. Digite-o e você deverá obter acesso ao prompt do banco de dados conforme o esperado.
Conclusão
Agora você tem acesso administrativo ao servidor MySQL ou MariaDB restaurado. Verifique se a nova senha root que você escolhe é forte e segura e mantenha-a em local seguro.
fonte
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';
tem sido um salva-vidas para mim!Nenhuma das respostas acima me ajudou com esse problema, então aqui está a solução que encontrei .
A parte relevante:
fonte
Para usuários do Ubuntu / Debian
( pode funcionar em outras distribuições, especialmente as baseadas em debian)
Execute o seguinte para conectar-se como
root
(sem nenhuma senha)Se você não deseja adicionar
--defaults-file
cada vez que deseja se conectar comoroot
, pode copiar/etc/mysql/debian.cnf
para o diretório inicial:e depois:
fonte
Depois de tentar todas as outras respostas, é isso que finalmente funcionou para mim
Encontrei a resposta neste post: https://medium.com/@chiragpatel_52497/solved-error-access-denied-for-user-root-localhost-of-mysql-programming-school-6e3611838d06
fonte
skip-grant-table
(my.conf ou nomysql
comando) não funcionaram. Eu poderia entrar usando uma conta de serviço ( askubuntu.com/a/120769/169836 ), masUPDATE mysql.user SET Password=PASSWORD('') WHERE User='root';
não funcionou. Somente quando usando a parte do plugin as coisas funcionaram. Obrigado ~Para novos usuários do Linux, isso pode ser uma tarefa assustadora. Deixe-me atualizar isso com o mysql 8 (a versão mais recente disponível no momento é 8.0.12, em 12 de setembro de 2018)
É isso aí.
fonte
No seu ambiente de trabalho MySQL, você pode ir para a barra lateral esquerda, em Gerenciamento, selecionar "Usuários e privilégios", clicar na raiz em Contas de usuário e, na seção direita, clicar na guia "Limites de conta" para aumentar o máximo de consultas, atualizações, etc. clique na guia "Funções administrativas" e marque as caixas para conceder acesso à conta. Espero que ajude!
fonte
Eu fiz isso para definir minha senha root na configuração inicial do MySQL no OSx. Abra um terminal.
Feche o terminal e abra um novo terminal. E os seguintes são trabalhados no Linux, para definir a senha root.
(sudo mysqld_safe --skip-grant-tables: Isso não funcionou para mim na primeira vez. Mas, na segunda tentativa, foi o sucesso.)
Então entre no MySQL
Agora mude a senha:
Reinicie o MySQL:
fonte
No meu caso no Debian 10, o erro
foi resolvido por (BOA MANEIRA)
MANEIRA RUIM:
fonte
Ugh- nada funcionou para mim! Eu tenho uma máquina CentOS 7.4 executando o mariadb 5.5.64.
O que eu tinha que fazer era isso, logo após a instalação do mariadb do yum;
O
mysql_secure_installation
guiará por várias etapas, incluindo "Definir senha root? [S / n]". Apenas diga "y" e dê uma senha. Responda as outras perguntas como desejar.Então você pode entrar com sua senha, usando
Vai sobreviver
A chave
Depois, verifiquei o
/bin/mysql_secure_installation
código-fonte para descobrir como era magicamente capaz de alterar a senha root e nenhuma das outras respostas aqui conseguiu. O bit de importação é:... Diz
SET Password=...
e nãoSET authentication_string = PASSWORD...
. Portanto, o procedimento apropriado para esta versão (5.5.64) é:No prompt do mysql>:
mate o mysqld_safe em execução. reinicie o mariadb. Entrar como root:
mysql -u -p
. Use sua nova senha.Se desejar, você pode definir todas as senhas raiz de uma só vez. Eu acho que isso é sábio:
Isso executará atualizações em todas as senhas raiz: ou seja, para "localhost", "127.0.0.1" e ":: 1"
No futuro, quando eu for para o RHEL8 ou o que você tem, tentarei me lembrar de verificar a / bin / mysql_secure_installation e ver como os caras fizeram isso, quem configurou o mariadb para este sistema operacional.
fonte
Se você é como eu e todas as sugestões acima falharam, prossiga com a desinstalação de todas as versões do mysql em sua máquina, procure todos os arquivos mysql restantes usando este comando
sudo find / -name "mysql"
erm -rf
todos os arquivos ou diretórios com o nome do mysql anexado (você deve pular arquivos relacionados para bibliotecas de linguagens de programação). Agora instale uma nova versão do MySQL e aproveite. Nota: você perderá todos os seus dados, portanto pese suas opções primeiro.fonte
Isso pode acontecer se você não tiver privilégios suficientes. Digite
su
, digite a senha root e tente novamente.fonte
Ok, eu sei que esse é um tópico antigo, mas se você chegou a esta página pelo Google como eu e nenhuma das soluções acima funcionou, o que acabou por ser o erro foi 100% tolice do meu lado. Não me conectei ao servidor. Uma vez conectado, tudo foi tranquilo.
Caso ajude a conhecer minha configuração, estou usando o Sequel Pro e tentando conectar-me ao Node usando o pacote NPM, mysql. Eu não achei que precisava me conectar (exceto executar o Sequel Pro) porque já estava fazendo isso no meu aplicativo.
fonte
Solução: Desista!
Ouça-me, passei cerca de dois dias inteiros tentando fazer o MySQL funcionar sem sucesso, sempre preso a erros de permissão, nenhum dos quais foi corrigido pelas respostas neste tópico. Chegou ao ponto em que pensei que, se continuasse, ficaria louco.
Com paciência para fazê-lo funcionar, enviei o comando para instalar o SQLite, usando apenas 450 KB, e funcionou perfeitamente desde o início.
Se você não tem a paciência de um santo, vá com o SQLite e economize muito tempo, esforço, dor e espaço de armazenamento ..!
fonte