Estou tentando alterar a senha root do MySql.
O que eu fiz está abaixo.
- Instale o MySql-5.7.6 ~ .dmg (Community Server) e o ambiente de trabalho.
- Desligue o servidor nas preferências do sistema OSX.
- Acesse o MySql com o console. O comando foi
mysqld_safe --skip-grant
- Execute
update user set password=password('1111') where user='root';
e receba uma mensagem de erro ->ERROR 1054 (42S22): Unknown column 'password' in 'field list'
.
FYI, eu fiz use mysql;
. Então, eu selecionei a consulta na tabela do usuário e a coluna da senha encontrada não existe.
Isso é muito estranho. É possível que a tabela do usuário original não tenha uma coluna de senha?
Como posso alterar a senha, que não existe?
Obrigado pela sua resposta: D
UPDATE mysql.user SET authentication_string= 'password' WHERE User = 'root';
Porque o campo 'Senha' foi removido pelo mysql e substituído por authentication_string. Nota: que a função mysql PASSWORD ('password') depende do algoritmo MD5 que foi quebrado há muito tempo usando o ataque do dia do nascimento. Portanto, usá-lo fornece uma falsa sensação de segurança, porque um invasor pode colar os hashes produzidos em um site público como hashkiller.co.uk/md5-decrypter.aspx e recuperar sua senha de texto sem formatação.Respostas:
No MySQL 5.7, o campo de senha no campo da tabela mysql.user foi removido, agora o nome do campo é 'authentication_string'.
Primeiro escolha o banco de dados:
E então mostre as tabelas:
Você encontrará a tabela de usuários, agora vamos ver seus campos:
Surpresa! Não existe um campo chamado 'senha', o campo de senha é chamado 'authentication_string'. Então, faça o seguinte:
Agora, tudo ficará bem.
Comparadas ao MySQL 5.6, as mudanças são bastante extensas: O que há de novo no MySQL 5.7
fonte
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
Este erro ocorre se você não definiu a senha na instalação, neste caso o mysql usando o plugin unix-socket .
Mas se excluir o link do plugin das configurações (tabela mysql.user) haverá outro problema. Isso não resolve o problema e cria outro problema. Para corrigir o link excluído e definir a senha ("PWD"), faça:
1) Corra com o
--skip-grant-tables
que foi dito acima.Se isso não funcionar, adicione a string
skip-grant-tables
na seção[mysqld]
de/etc/mysql/mysql.conf.d/mysqld.cnf
. Então façasudo service mysql restart
.2) Execute
mysql -u root -p
, depois (altere "PWD"):então
sudo service mysql restart
. Confira:mysql -u root -p
.Antes de
restart
remover essa sequência do arquivo mysqld.cnf, se você a definir lá.fonte
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '("MYNEWPASSWORD"), plugin="mysql_native_password"
Uma armadilha em que caí é que não há campo de senha agora, ele foi renomeado para:
update user set password=PASSWORD("YOURPASSWORDHERE") where user='root';
Agora deve ser:
update user set authentication_string=password('YOURPASSWORDHERE') where user='root';
fonte
Use o
ALTER USER
comando em vez de tentar atualizar umaUSER
linha. Lembre-se de que pode haver mais de um usuário "raiz", porque as entidades de usuário também são qualificadas pela máquina na qual se conectamhttps://dev.mysql.com/doc/refman/5.7/en/alter-user.html
Por exemplo.
fonte
Só funcionou comigo quando "liberado" após os comandos mencionados aqui. Aqui está a lista completa de comandos que usei:
Respostas anteriores podem não funcionar para versões posteriores do mysql. Tente estas etapas se as respostas anteriores não funcionaram para você:
1- Clique no ícone do wamp> mysql> console mysql
2- escreva os seguintes comandos, um por um
fonte
Obrigado pela ajuda. Caso as pessoas ainda tenham problemas, tente isso.
Para o MySQL versão 5.6 e sob
Você esqueceu sua senha 'ROOT' do Mac OS X e precisa redefini-la? Siga estes 4 passos simples:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
sudo /usr/local/mysql/bin/mysql -u root UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES; \q
Para o MySQL versão 5.7 e superior
'System Prefrences' > MySQL > 'Stop MySQL Server'
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
sudo /usr/local/mysql/bin/mysql -u root UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES; \q
fonte
Para esse problema, usei um método simples e rude, renomeie o nome do campo para senha, o motivo é que utilizo o software mac navicat premium no erro de operação visual: coluna desconhecida 'password' em 'field List', the o próprio software usa senha para que eu não possa operar facilmente. Portanto, faço root na linha de comando do banco de dados, execute
E modifique o nome do campo:
Afinal normal.
fonte
Causa Raiz: root não possui senha e sua instrução python connect deve refletir isso.
Para resolver o erro 1698, altere sua senha de conexão python para ''.
nota: atualizar manualmente a senha do usuário não resolverá o problema, você ainda receberá o erro 1698
fonte
Lembre-se de que a senha precisa ser definida ainda mais depois de reiniciar o mysql, como abaixo
fonte