Mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication.

mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD(‘your_existing_password’). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file

Você pode verificar se a senha do seu usuário foi criada no padrão antigo utilizando o comando a seguir (com uma conta que tenha acesso a essa tabela).

1
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user

Esse comando vai te mostrar o comprimento das senhas e irá retornar 16 para contas com senhas no padrão antigo e 41 para as contas com senhas novas (e, 0 para contas com nenhuma senha).

Se você tiver permissão, para recriar a senha no padrão “novo”, você pode utilizar as queries a seguir:

1
2
SET PASSWORD FOR 'User'@'Host'=PASSWORD('sua_senha');
FLUSH Privileges

Caso você não possa fazer isso, você pode tentar utilizar as queries abaixo e alterar o seu php para:

1
2
SET SESSION old_passwords=FALSE;
SET PASSWORD = PASSWORD('[your password]');
1
2
define('CLIENT_LONG_PASSWORD', 1);
mysql_connect('[endereco_servidor]', '[nome_de_usuario]', '[sua_senha]', false, CLIENT_LONG_PASSWORD);

abraço,
até…

Não existem posts relacionados.

Tags:

No comments yet.

Leave a Reply