> 데이터 베이스 > MySQL 튜토리얼 > \'localhost\'를 사용할 때 \'해당 파일 또는 디렉터리가 없습니다(unix:///tmp/mysql.sock을 통해 연결하려고 시도 중)\'라는 메시지와 함께 내 PDO 연결이 실패하는 이유는 무엇입니까?

\'localhost\'를 사용할 때 \'해당 파일 또는 디렉터리가 없습니다(unix:///tmp/mysql.sock을 통해 연결하려고 시도 중)\'라는 메시지와 함께 내 PDO 연결이 실패하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-11-03 07:38:30
원래의
1020명이 탐색했습니다.

Why Does My PDO Connection Fail With

PDO 연결 오류: "해당 파일 또는 디렉터리가 없습니다(unix:///tmp/mysql.sock을 통해 연결을 시도 중)"

이 질문에서 사용자는 이전에 작동하던 PDO를 통해 데이터베이스에 연결하는 문제에 대한 우려를 표명합니다. 사용자는 코드나 데이터베이스와 관련된 설정을 변경하지 않았고 문제의 근본 원인을 확신하지 못하기 때문에 당황합니다.

사용자가 제공한 PHP 코드 조각은 TCP/IP 연결 설정을 시도하고 있음을 나타냅니다. "localhost"라는 호스트 이름을 사용하여 데이터베이스에 연결합니다. 그러나 오류 메시지는 대신 Unix 소켓을 통해 연결하려는 시도를 나타냅니다.

해결책:

사용자가 PHP 문제로 인해 자신도 모르게 Unix 소켓을 사용하려고 시도하고 있습니다. 클라이언트 라이브러리의 기본 "localhost" 처리입니다. 이 라이브러리는 "localhost"를 TCP 호스트가 아닌 소켓 위치로 해석합니다.

이 오류를 해결하고 로컬 시스템에 대한 TCP/IP 연결을 설정하려면 사용자는 호스트 이름을 "127.0.0.1"로 대체해야 합니다. PHP 코드:

<code class="php">new PDO('mysql:host=127.0.0.1;port=3306;dbname=test', 'username', 'password');</code>
로그인 후 복사

Unix 소켓을 사용하려는 경우 사용자는 "host" 대신 "unix_socket" DSN 옵션을 사용하여 DSN에서 해당 위치를 명시적으로 지정할 수 있습니다. localhost에 사용되는 Unix 소켓의 위치는 컴파일 타임에 구성하거나 특정 PHP 버전에서는 php.ini 파일의 "pdo_mysql.default_socket" 설정을 수정하여 구성할 수 있습니다.

위 내용은 \'localhost\'를 사용할 때 \'해당 파일 또는 디렉터리가 없습니다(unix:///tmp/mysql.sock을 통해 연결하려고 시도 중)\'라는 메시지와 함께 내 PDO 연결이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿