Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Não é possível conectar ao MySQL 4.1+ usando autenticação antiga


edit:Isso só se aplica se você estiver no controle do servidor MySQL ... se você não estiver dando uma olhada em Método de hash de senha do MySQL antigo vs novo

Primeiro verifique com a consulta SQL
SHOW VARIABLES LIKE 'old_passwords'

(no cliente de linha de comando MySQL, HeidiSQL ou qualquer front-end que você quiser) se o servidor está configurado para usar o esquema de senha antigo por padrão. Se isso retornar old_passwords,Off você tem entradas de senha antigas no user tabela. O servidor MySQL usará a rotina de autenticação antiga para essas contas. Você pode simplesmente definir uma nova senha para a conta e a nova rotina será usada.

Você pode verificar qual rotina será usada dando uma olhada no mysql.user tabela (com uma conta que tenha acesso a essa tabela)
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user

Isso retornará 16 para contas com senhas antigas e 41 para contas com novas senhas (e 0 para contas sem senha, você pode querer cuidar delas também).
Use as ferramentas de gerenciamento de usuários do front-end MySQL (se houver) ou
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges;

(substitua User e Host com os valores que você obteve da consulta anterior.) Em seguida, verifique o comprimento da senha novamente. Deve ser 41 agora e seu cliente (por exemplo, mysqlnd) deve ser capaz de se conectar ao servidor.

veja também a documentação do MySQL:* http://dev. mysql.com/doc/refman/5.0/en/old-client.html
* http://dev.mysql. com/doc/refman/5.0/en/password-hashing.html
* http://dev.mysql. com/doc/refman/5.0/en/set-password.html