mysql - the - tableplus




Não foi possível acessar o MySQL depois que ele gerou automaticamente uma senha temporária (10)

Senha do MySQL expirada

Redefinir a senha resolverá o problema temporariamente, no entanto, do MySQL 5.7.4 para 5.7.10 (acho que para incentivar melhor segurança) o valor padrão para a variável default_password_lifetime é 360 (cerca de um ano). Para essas versões, se você não fizer alterações nessa variável (ou em contas de usuário individuais), todas as senhas de usuário expiram após 360 dias.

Normalmente, a partir de um script, você pode receber a mensagem: "Sua senha expirou. Para efetuar login, você deve alterá-la usando um cliente que suporte senhas expiradas".

Portanto, para evitar a expiração automática da senha, efetue login como root ( mysql -u root -p ) e, para clientes que se conectam automaticamente ao servidor (por exemplo, scripts.), Altere as configurações de expiração de senha para esses clientes:

ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER;

ou você pode desativar a expiração automática de senha para todos os usuários :

SET GLOBAL default_password_lifetime = 0;

Ligações:

MySQL: Expiração de senha e modo sandbox
MySQL: Política de Expiração de Senha
Política de expiração de senha no MySQL Server 5.7

Apaguei e instalei o OSX 10.11 El Capitan e segui este tutorial para colocar o MySQL em funcionamento no novo OS X. O primeiro passo foi fazer o download do MySQL para Mac OS X 10.9 (x86, 64 bits), DMG Arquivar (funciona em 10.11, eles recomendaram no tutorial). Enquanto eu terminava de instalar o MySQL, recebi a mensagem dizendo:

2015-10-25T02:10:54.549219Z 1 [Note] A temporary password is generated for root@localhost: R>gFySuiu23U

If you lose this password, please consult the section How to Reset the Root Password in the MySQL reference manual.

Isso foi estranho, eu nunca vi esse tipo de mensagem. Depois disso, iniciei o MySQL através do Painel de Preferências e use o comando /usr/local/mysql/bin/mysql -v no terminal para outra etapa. Recebi uma mensagem de erro dizendo:

ERROR 1045 (28000): Access denied for user 'cheetah'@'localhost' (using password: NO)

Eu também tentei acessar o banco de dados através do Sequel Pro usando root como nome de usuário e senha em branco, recebi a mensagem de acesso negado dizendo:

Unable to connect to host 127.0.0.1 because access was denied.

Double-check your username and password and ensure that access from your current location is permitted.

MySQL said: Access denied for user 'root'@'localhost' (using password: NO)

Ok, eu também tentei novamente usando root como nome de usuário, mas 'R> gFySuiu23U' como senha (que foi gerada a partir do MySQL). Recebi a mensagem de falha na conexão dizendo:

Unable to connect to host 127.0.0.1, or the request timed out.

Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).

MySQL said: Your password has expired. To log in you must change it using a client that supports expired passwords.

Como eu poderia resolver esse problema? Lembro que o MySQL nunca gerou automaticamente uma senha temporária como essa, não é?


A outra maneira de resolver esse problema é usar uma versão mais antiga do MySQL.

Eu desinstalei o MySQL version 5.7.9 para Mac OS X 10.9 (x86, 64 bits), DMG Archive e MySQL version 5.6.7 a versão mais antiga, MySQL version 5.6.7 para Mac OS X 10.9 (x86, 64 bits), DMG Archive . Este problema foi resolvido. A senha gerada automaticamente fornecida antes de concluir a instalação desta versão anterior desapareceu e, finalmente, posso acessar o banco de dados usando root como nome de usuário e uma senha em branco. Tudo está funcionando como um encanto!


Agora que a senha gerada pelo MySQL expirou, o problema é reduzido para fazer com que essa senha funcione novamente (1) ou gere uma nova (2). Isso pode ser feito executando o MySQL com a opção skip-grant-tables que faria com que ele ignorasse os direitos de acesso:

  1. Pare seu servidor MySQL.

  2. Adicione o abaixo no final da seção [mysqld] do arquivo my.cnf e salve-o.

    skip-grant-tables

  3. Inicie o servidor MySQL.

  4. No terminal, digite

    mysql -u root -p

para entrar no prompt de comando do MySQL.

  1. No prompt de comando, digite

    USE mysql;

para entrar no banco de dados mysql onde ele mantém os usuários.

  1. Tipo

    UPDATE user SET password_expired = 'N' WHERE User = 'root';

para informar ao MySQL que a senha não expirou (1) ou

UPDATE user SET authentication_string = PASSWORD('YourNewPassword'), password_expired = 'N' WHERE User = 'root';

para atribuir uma nova senha YourNewPassword à raiz (2).


Este em particular fez o truque para mim:

Conforme especificado neste link: https://www.variphy.com/kb/mac-os-x-reset-mysql-root-password

Execute todas as etapas, exceto a execução

    UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root';

Executar

    UPDATE mysql.user
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';

E então execute PRIVILÉGIOS DE LAVAGEM;


Eu enfrentei o mesmo problema. Segui o guia do processo de instalação em https://www.ntu.edu.sg/home/ehchua/programming/sql/MySQL_HowTo.html baixei o arquivo DMG e instalei o MySQL no meu MAC OS X 10.12.2.

Finalmente, execute os seguintes comandos no novo terminal.

cd /usr/local/mysql/bin

./mysql -u root -p --connect-expired-password

Funcionou.


Eu resolvi esse problema executando 'mysql -u root -p --connect-expired-password' Em seguida, insira a senha de geração automática expirada no mysql. Finalmente entrei. O mysql db selecionado com 'use mysql' e o usuário atualizado 'root' pw com 'ALTER USER 'root'@'localhost' IDENTIFIED BY 'your new password'


Foi o que funcionou para mim no OS X Yosemite executando o MySql v5.7 (instalado a partir do .dmg).

cd /usr/local/mysql/bin
./mysql -u root -p --connect-expired-password

(Digite a senha temporária gerada pelo instalador.)

Isso leva você ao modo sandbox e ao prompt do mysql> . Em seguida, defina a senha raiz desejada com SET PASSWORD :

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mySuperSecretPassword');

Instalar o MySQL manualmente baixando pacotes pela primeira vez gera uma senha padrão para root. Copie e salve isso. Se não for feito de alguma forma em reinstalações sucessivas, não mostra essa senha.

Portanto, você não pode fazer login no root. Faça o seguinte :

  1. Encontre entradas relacionadas ao mysql no sistema sudo find / -name mysql
  2. Remova todas as entradas relacionadas ao mysql executando rm -rf <mysql_entries_above>
  3. Faça o download do último servidor mysql e instale-o.
  4. Você receberá uma senha padrão que precisará copiar.
  5. Execute mysql_secure_installation e cole essa senha quando solicitado como root.
  6. Posteriormente, siga as etapas e altere a senha do administrador quando solicitado.

Isso pode acontecer quando você instalou o mysql antes. Experimente a senha que você definiu para a última versão do mysql. Isso funcionou para mim.


Para o Mysql 5.7 eu uso

shell $> sudo grep 'senha temporária' /var/log/mysqld.log





sequelpro