%3F.png)
Estou recebendo erros sempre que tento conectar-me localmente ao mySQL no Mac OS Snow Leopard 10.6.4. Estou executando o mySQL 5.1.46. Posso fazer login usando o console. Estou executando o PHP 5.3.2 e minha phpinfo()
página está funcionando bem. Então, com o PHP em execução, posso fazer login no servidor MySQL usando o console e o Sequel Pro.
Então suspeitei que fosse um problema de soquete. No meu diretório /etc, não tenho php.ini, tenho php.ini.default. Então eu vou lá e em todos os lugares que vejo "default_socket" eu mudo de:
/var/mysql/mysql.sock
para:
/tmp/mysql.sock
Eu vejo isso nos seguintes locais:
pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
E quando vou me conectar ao phpMyAdmin, recebo o seguinte erro: Não é possível iniciar a sessão sem erros, verifique os erros fornecidos no seu PHP e/ou arquivo de log do servidor web e configure a instalação do PHP corretamente.
E quando olho no meu phpinfo()
arquivo, recebo o seguinte no mySQL:
mysql.default_socket /var/mysql/mysql.sock /var/mysql/mysql.sock
Eu reinicio o Apache... caramba, eu reinicio todo o computador. Nada ainda. Eu sei que o MySQL está funcionando, sei que o PHP está funcionando, mas não consigo fazê-los falar.
Qualquer ajuda?
Responder1
O PHP deve estar procurando um arquivo php.ini (e não php.ini.default) para carregar, então tente renomear php.ini.default para php.ini. VerInstale Apache/PHP/MySQL no Snow Leopard.
Responder2
Se você não quiser mexer nas configurações do mysql ou do php, configure este hack:
mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
Isso cria um alias no local que o PHP está procurando que se conecta ao mysql.sock real.
Responder3
Traga o mysql.sock para PHP
Um problema que surgiu com o MySQL e o Leopard é a localização do arquivo mysql.sock. Anteriormente, o local padrão para esse arquivo era o diretório /tmp. Esse local agora foi movido para o diretório /var/mysql. O PHP irá procurá-lo lá. Infelizmente, o local padrão do MySQL ainda o colocará no local antigo. Podemos corrigir isso criando um arquivo de configuração my.cnf no diretório /etc. Salve um arquivo com o seguinte conteúdo em /etc/my.cnf:
[cliente] soquete = /var/mysql/mysql.sock
[mysqld] soquete = /var/mysql/mysql.sock
Na janela do terminal, digite os seguintes comandos para criar o diretório para o arquivo sock:
sudo mkdir /var/mysql sudo chown _mysql /var/mysql
Fonte:http://www.procata.com/blog/archives/2007/10/28/working-with-php-5-in-mac-os-x-105/
Responder4
Fiz o seguinte para resolver o problema (Mac OS x) -
1.) Primeiro vá para o seu webroot apache (caminho disponível em /etc/apache2/httpd.conf -> DocumentRoot). Para mim foi /Library/WebServer/Documents/
1.1) Crie um showphpconfig.php nesse local
2.) Acesse este arquivo em seu navegador:http://127.0.0.1/showphpconfig.php
Isso mostrará qual arquivo de configuração seu servidor Apache está usando
Para mim foi usar/private/etc/php.ini
Eu também vi que o php estava usando o arquivo mysql sock de/var/mysql/mysql.sock
3.) Fiz uma cópia do arquivo php.ini. Abra-o e encontre todas as linhas que possuem mysql.sock.
copie essas linhas e crie uma nova entrada, como abaixo -
;pdo_mysql.default_socket=/var/mysql/mysql.sock
pdo_mysql.default_socket=/tmp/mysql.sock
criança levadao ";" na frente da primeira linha, que está comentando a primeira linha
Deverão existir cerca de 4 dessas linhas
Agora você disse ao php que o arquivo de soquete mysql está realmente presente na pasta /tmp
4.) reinicie seu servidor Apache -apachectl restart
E você deverá ver a tela de configuração do wordpress