PHP não pode se conectar ao MySQL

1

Eu recentemente instalei o Apache 2 + PHP 5.3.1 + MySQL 5.1.44 em minha máquina com Windows 7 de 64 bits seguindo este guia:    link

Tudo correu bem, o php está funcionando muito bem (mesmo com o XDebug), mas não consigo me conectar ao servidor mysql.

Um script simples que escrevi para testar a conexão (sim, o root não tem permissão):

    $username = "root";
    $password = "";
    $database = "test";
    $hostname = "localhost";

$conn = mysql_connect($hostname, $username, $password)
    or die("Unable to connect to MySQL Database!!");

Imprime esse erro após 60 segundos de tempo limite:

Warning: mysql_connect() [function.mysql-connect]: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

Eu posso conectar-me ao mysql usando cmd > mysql -h localhost -u root

Os serviços estão funcionando corretamente.

Também parece haver um problema com o PhpMyAdmin (usando 3.2.5). Assim que eu digitar o usuário e passar a página carrega e fica em branco (comprimento de conteúdo em cabeçalhos é 0, mas o código de status é 302 encontrado). Parece algo errado com cookies (meu método de autenticação).

Espero que alguém tenha uma pista, tem que ser algo burro simples que eu perdi. Agradecemos antecipadamente.

    
por szalski 01.03.2010 / 21:42

2 respostas

1

Eu tenho isso na minha máquina desde a atualização. No meu caso, especificando 127.0.0.1 como o host em vez de localhost faz o truque.

Um dia vai me incomodar o suficiente para realmente consertar isso:)

Editar sobre o phpMyAdmin
Ah, phpMyAdmin ... sim! Eu sinto sua dor. Eu odeio com uma paixão toda vez que eu sou forçado a reinstalar este aplicativo. É um aplicativo brilhante quando funciona, mas colocá-lo em um estado de trabalho me causou muita dor ao longo do tempo.

Na minha experiência pessoal, certifique-se de que todos os módulos PHP necessários estejam carregados e certifique-se de que seu diretório de sessões do PHP (como especificado em php.ini) realmente exista no sistema de arquivos. Se você alterar qualquer um desses, reinicie o Apache.

Também na minha experiência, reiniciar o Apache sozinho não é bom o suficiente - uma reinicialização do navegador é necessária para limpar corretamente a sessão.

    
por 01.03.2010 / 21:47
0

Este é um bug conhecido: link A solução é atualizar o arquivo de hosts sem comentários ou adicionar:

127.0.0.1       localhost

Algumas versões do PHP 5 não entendem o windows dando um endereço IPv6

    
por 23.04.2010 / 18:53