Mac OS Snow Leopard: phpinfo() 페이지에서 mysql.default_socket 값이 변경되지 않는 이유는 무엇입니까?

Mac OS Snow Leopard: phpinfo() 페이지에서 mysql.default_socket 값이 변경되지 않는 이유는 무엇입니까?

Mac OS Snow Leopard 10.6.4에서 mySQL에 로컬로 연결하려고 할 때마다 오류가 발생합니다. 저는 mySQL 5.1.46을 실행하고 있습니다. 콘솔을 사용하여 로그인할 수 있습니다. 저는 PHP 5.3.2를 실행 중이고 phpinfo()페이지가 제대로 작동하고 있습니다. PHP가 실행 중이므로 콘솔과 Sequel Pro를 모두 사용하여 mySQL 서버에 로그인할 수 있습니다.

그래서 소켓 문제인 줄 알았습니다. 내 /etc 디렉토리에는 php.ini가 없고 php.ini.default가 있습니다. 그래서 거기로 가서 "default_socket"이 보이는 모든 곳에서 다음과 같이 변경합니다.

/var/mysql/mysql.sock

에게:

/tmp/mysql.sock

다음 위치에서 볼 수 있습니다.

pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

그리고 phpMyAdmin에 연결하려고 하면 다음 오류가 발생합니다. 오류 없이 세션을 시작할 수 없습니다. PHP 및/또는 웹 서버 로그 파일에 제공된 오류를 확인하고 PHP 설치를 올바르게 구성하십시오.

그리고 내 파일을 보면 phpinfo()mySQL 아래에 다음이 표시됩니다.

mysql.default_socket /var/mysql/mysql.sock /var/mysql/mysql.sock

Apache를 다시 시작합니다... 도대체 컴퓨터 전체를 다시 시작합니다. 그래도 아무것도 없습니다. 나는 mySQL이 작동하고 있다는 것을 알고 있고, PHP가 작동하고 있다는 것을 알고 있지만, 그들과 대화할 수는 없습니다.

도움이 필요하세요?

답변1

PHP는 로드할 php.ini 파일(php.ini.default가 아닌)을 찾아야 하므로 php.ini.default의 이름을 php.ini로 바꿔보세요. 보다Snow Leopard에 Apache/PHP/MySQL 설치.

답변2

mysql이나 php의 구성 설정을 방해하고 싶지 않다면 다음 해킹을 설정하세요.

mkdir /var/mysql

ln -s /tmp/mysql.sock /var/mysql/mysql.sock

이는 PHP가 찾고 있는 위치에 실제 mysql.sock에 연결되는 별칭을 생성합니다.

답변3

mysql.sock을 PHP로 가져오기

MySQL과 Leopard에서 발생한 문제 중 하나는 mysql.sock 파일의 위치입니다. 이전에는 이 파일의 기본 위치가 /tmp 디렉터리였습니다. 해당 위치는 이제 /var/mysql 디렉토리로 이동되었습니다. PHP는 그곳에서 그것을 찾을 것입니다. 불행하게도 MySQL의 기본 위치는 여전히 이전 위치에 배치됩니다. /etc 디렉토리에 my.cnf 구성 파일을 생성하여 이 문제를 해결할 수 있습니다. 다음 내용의 파일을 /etc/my.cnf에 저장합니다.

[클라이언트] 소켓 = /var/mysql/mysql.sock

[mysqld] 소켓 = /var/mysql/mysql.sock

터미널 창에서 다음 명령을 입력하여 sock 파일용 디렉터리를 만듭니다.

sudo mkdir /var/mysql sudo chown _mysql /var/mysql

원천:http://www.procata.com/blog/archives/2007/10/28/working-with-php-5-in-mac-os-x-105/

답변4

문제를 해결하기 위해 다음을 수행했습니다(Mac OS x).

1.) 먼저 Apache 웹루트(/etc/apache2/httpd.conf -> DocumentRoot에서 사용 가능한 경로). 나에게는 /Library/WebServer/Documents/였습니다.

1.1) 해당 위치에 showphpconfig.php를 생성합니다.

2.) 브라우저에서 이 파일을 방문하십시오.http://127.0.0.1/showphpconfig.php

그러면 Apache 서버가 사용하는 구성 파일이 표시됩니다.

나를 위해 그것은 사용 중이었습니다/private/etc/php.ini

나는 또한 PHP가 다음의 mysql 양말 파일을 사용하고 있다는 것을 알았습니다./var/mysql/mysql.sock

3.) php.ini 파일의 복사본을 만들었습니다. 그것을 열고 mysql.sock이 있는 모든 라인을 찾으십시오.

해당 줄을 복사하고 아래와 같이 새 항목을 만듭니다.

;pdo_mysql.default_socket=/var/mysql/mysql.sock
pdo_mysql.default_socket=/tmp/mysql.sock

꼬마 도깨비";" 첫 번째 줄 앞에는 첫 번째 줄을 주석 처리하는 것입니다.
그런 줄이 4개 정도 있어야 합니다.

이제 mysql 소켓 파일이 실제로 /tmp 폴더에 있다는 것을 PHP에 알렸습니다.

4.) 아파치 서버를 다시 시작하세요 -apachectl restart

그러면 WordPress 구성 화면이 표시됩니다.

관련 정보