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

A conexão remota do MySQL não pode se conectar ao MySQL 4.1+ usando o antigo erro de autenticação insegura do XAMPP


Não estou muito claro por que isso se tornou um problema na minha instalação do XAMPP, já que também estou executando o PHP 5.3.x na caixa local do servidor e não estava enfrentando esses problemas lá. No entanto, tem a ver com o meu servidor mySQL em execução no modo de criptografia "senha antiga". Versões mais recentes do PHP não permitirão esses tipos de conexões, então você precisa atualizar seu servidor mySQL para usar a criptografia de senha mais recente. Aqui estão as etapas, supondo que você tenha controle sobre o servidor mySQL. Se você não fizer isso, isso está fora do escopo do meu conhecimento.

  1. localize o arquivo de configuração para o servidor mysql chamado my.cnf . Encontrei o meu em /etc/my.cnf . Você pode editá-lo com sudo nano /etc/my.cnf

  2. Procure uma linha que diga old_passwords=1 e mude para old_passwords=0 . Você disse ao servidor que na próxima vez que ele for executado e for solicitado a criptografar uma senha usando o comando PASSWORD(), ele usará a nova criptografia de 41 caracteres em vez da criptografia de estilo 'antigo' de 16 caracteres

  3. Agora você precisa reiniciar seu servidor/serviço mysql. YMMV, mas no Fedora isso foi feito facilmente com sudo service mysqld restart . Verifique as instruções do seu sistema operacional para reiniciar o daemon ou serviço mysql

  4. Agora temos que editar nosso user tabela dentro do mysql. Então abra um shell interativo para mysql (no servidor você pode digitar mysql -uYourRootUsername -pYourRootPassword )

  5. Mude para o mysql base de dados. Este é o banco de dados que contém todas as coisas boas para a operação e autenticação do servidor. Você deve ter acesso root para trabalhar com este banco de dados. Se você receber um 'acesso negado', você é SOL. Desculpe. use mysql; mudará para esse banco de dados

  6. Agora queremos atualizar o usuário que estava lhe causando problemas. Em última análise, você provavelmente desejará atualizar todos os seus usuários, mas, por enquanto, estamos nos concentrando apenas no usuário que apresentou o erro. update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME';

  7. Agora você só precisa dizer ao mysql para usar a nova senha para autenticação quando esse usuário tentar se conectar. flush privileges; .

Você deve estar pronto para ir!