mysql_connect (): O servidor solicitou o método de autenticação desconhecido para o cliente [mysql_old_password] em

8

Estou tentando executar o PHP 5.4.1 (compilado a partir do código-fonte), mas quando tento conectar no mysql recebo:

Warning: mysql_connect(): The server requested authentication method unknown to the client [mysql_old_password] in

Ao usar o PHP 5.3 / 5.2, ele funciona normalmente. Alguma idéia do que causa esse problema?

Fernando
fonte
Veja esta resposta em outra pergunta: stackoverflow.com/a/50776838/1041047
Robin Qiu

Respostas:

10

Tente ler isto: link

O MySQL introduziu hashes de senha mais longos (acho) na versão 4.1, e seu servidor provavelmente ainda os usa (verifique se há hashes de senha de 16 bytes na tabela de usuário do mysql). Versões mais recentes usam hashes de senha mais longos. Seu servidor suporta ambos, mas seu cliente (php) parece suportar apenas os novos nesta versão (e assim por diante).

Se possível, use a solução no link da primeira linha e defina sua senha novamente com o novo hash, mas cuidado, se você estiver usando outros clientes (antigos) que dependem de senhas antigas, a compatibilidade pode ser interrompida. Tente também procurar suporte a senhas antigas para MySQL em PHP, mas não tenho certeza.

mulaz
fonte
8
ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';
Robin Qiu
fonte
Esta resposta resolvido este problema para mim serverfault.com/questions/295285/...
Vishrant
3

Sei que esse é um tópico antigo, mas resolvi o problema sem precisar atualizar / fazer o downgrade de nada. Basicamente, comentei a linha old_passwords = 1 no meu arquivo my.cnf, reiniciei o mysql, adicionei / modifiquei o usuário que acabou obtendo o hash de 16 bytes, depois voltei e descomentei a old_passwords = 1 linha e reiniciei o mysql. Então, basicamente:

  • comentar old_passwords = 1
  • reinicie o mysql
  • adicionar / modificar usuário
  • descomente old_passwords = 1
  • reinicie o mysql

Então, você tem: 1 usuário usando o novo tipo de senha, enquanto outros usuários têm seus tipos de senha antigos. E todos podem entrar! ;)

petru
fonte
1

Muitas vezes isso pode acontecer se o servidor MYSQL estiver usando um hash de senha antigo , altere a senha Ou atualize o servidor para obter o hash de senha mais recente que corrige o problema de autenticação.

Clain Dsilva
fonte
1
Acabei de alterar a senha do usuário do banco de dados novamente, assumindo que o MySql usaria o novo hash. Funcionou. Nenhuma outra alteração foi necessária.
26619 eyal_katz
0

Recebi uma mensagem semelhante ao tentar atualizar minha instalação do mediawiki. Estou usando o Netfirms como meu provedor de hospedagem e resolvi isso entrando no painel de controle, acessando a área MySQL e alterando o banco de dados que o mediawiki estava usando. Pude então prosseguir com a atualização do mediawiki.

jedi34567
fonte