>  기사  >  백엔드 개발  >  pdo 연결_php 팁을 사용할 때 PHP에서 보고한 연결 실패 SQLSTATE 오류에 대한 해결 방법

pdo 연결_php 팁을 사용할 때 PHP에서 보고한 연결 실패 SQLSTATE 오류에 대한 해결 방법

WBOY
WBOY원래의
2016-05-16 20:28:151278검색

이 문서의 예에서는 php pdo_mysql 연결 오류 연결 실패: SQLSTATE[HY000] [2002] 해당 파일 또는 디렉터리가 없습니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 방법은 다음과 같습니다.

오류 설명:

연결 실패: SQLSTATE[HY000] [2002] 해당 파일 또는 디렉터리가 없습니다

환경 개요:
맥OS
xampp로 구축된 개발 환경 apache mysql php
xampp은 mysql oracle을 지원했으며 테스트는 괜찮았으며 phpinfo는 pdo_mysql pdo_pgsql pdo_sqlite를 지원하는 것으로 나타났습니다

그 중 xampp과 함께 제공되는 mysql이 아닌 Brew 패키지 관리를 사용하여 mysql을 머신에 설치했습니다

php pdo 연결 오류 연결 실패: SQLSTATE[HY000] [2002] 해당 파일 또는 디렉터리가 없습니다

처음에는 URL 재작성으로 인해 파일을 찾을 수 없는 줄 알았는데(nginx에서 apache로 전환해서) 추적 프로그램에서 새로운 pdo 오류가 보고된 것으로 나타났습니다

몇 가지 정보를 검색한 후 다음을 발견했습니다.

php.ini 구성 파일의 pdo_mysql.default_socket에 지정된 잘못된 mysql.sock 경로입니다
내 mysql.sock 파일은 /private/tmp/mysql.sock

에 있습니다.

설정:

코드 복사 코드는 다음과 같습니다.
pdo_mysql.default_socket=/private/tmp/mysql.sock

mysql.sock이 어디에 있는지 모르시면 검색하시면 됩니다. (yum, apt-get, Brew 등 패키지 관리 도구의 설치 위치와 컴파일 및 설치 위치가 다르기 때문입니다.)
sudo find / -name 'mysql.sock'
공식 버그 수정은 다음과 같습니다

1. php.ini를 엽니다(내 파일은 /private/etc/에 있음)
2. 다음 줄을 찾으세요: pdo_mysql.default_socket=/var/mysql/mysql.sock
3. 줄을 다음으로 변경합니다: pdo_mysql.default_socket=/tmp/mysql.sock
4. 아파치를 다시 시작하세요

1. 새로운 시스템이거나 PHP를 막 시작한 사람이라면 Mac 시스템에 php.ini 파일이 존재하지 않는다는 점을 여기에 추가해야 합니다.
2. /private/etc/ 디렉토리에 cp php.ini.default
가 필요합니다 php.ini를 수정한 다음
3. 하지만 xampp mysql을 데이터베이스로 사용하는 경우에는 공식 2단계를 사용할 필요 없이 다음 방법을 작성하면 됩니다.

코드 복사 코드는 다음과 같습니다.
pdo_mysql.default_socket=/Applications/XAMPP/xamppfiles/var/mysql/ mysql.sock


해결책 3:
코드 복사 코드는 다음과 같습니다.
sudo vim /etc/php.ini

원래 비어 있던 다음 세 가지 값을 다음과 같이 설정합니다.
코드 복사 코드는 다음과 같습니다.
/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket= /tmp/mysql.sock
mysqli.default_socket =/tmp/mysql.sock


모두 수정됨
수정 완료 후
사용
코드 복사 코드는 다음과 같습니다.
sudo /usr/sbin/apachectl restart

문제가 해결되었습니다!

이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.