> 백엔드 개발 > PHP 튜토리얼 > 내 PHP 스크립트가 소켓을 통해 MySQL 서버에 연결할 수 없는 이유는 무엇입니까?

내 PHP 스크립트가 소켓을 통해 MySQL 서버에 연결할 수 없는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-08 21:05:18
원래의
560명이 탐색했습니다.

Why Can't My PHP Script Connect to the MySQL Server via Socket?

오류: 소켓을 통해 MySQL 서버에 연결할 수 없습니다

문제

PHP MySQLi 클래스를 사용하여 MySQL 데이터베이스에 연결하려고 하면 다음 오류가 발생합니다:

mysqli::mysqli(): (HY000/2002): Can't connect to local MySQL server through socket 'MySQL' (2)
로그인 후 복사

분석

오류 메시지는 MySQL 클라이언트 라이브러리가 "MySQL"이라는 Unix 도메인 소켓을 통해 서버에 연결을 시도하고 있지만 소켓이 존재하지 않거나 사용할 수 없음을 나타냅니다.

MySQL 문서에 따르면 클라이언트 라이브러리는 다음을 처리합니다. 특히 Unix 시스템에서는 호스트 이름 "localhost"를 사용합니다. 포트 번호가 지정되어 있어도 기본적으로 Unix 소켓 파일을 사용하여 연결을 시도합니다.

해결 방법

이 오류를 해결하려면 다음 옵션을 고려하십시오.

1. TCP/IP 사용:

연결을 설정할 때 "localhost" 대신 호스트 이름으로 127.0.0.1을 사용하십시오. 이렇게 하면 라이브러리가 더 안정적이고 이식성이 뛰어난 TCP/IP 연결을 사용하게 됩니다.

2. php.ini에서 소켓 변경:

MySQL 구성 파일(my.cnf)을 찾고 MySQL이 소켓을 생성하는 경로를 찾습니다. 그런 다음 PHP의 mysqli.default_socket 지시어를 php.ini 파일의 해당 경로로 설정합니다.

3. PHP 스크립트에서 소켓 구성:

연결을 열 때 PHP 스크립트에서 직접 소켓을 지정하세요.

$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');
로그인 후 복사

추가 정보

원격에서 연결하는 경우 IP 주소를 사용하려면 MySQL 데이터베이스에서 외부 연결에 필요한 권한이 있는 사용자를 생성했는지 확인하세요.

위 내용은 내 PHP 스크립트가 소켓을 통해 MySQL 서버에 연결할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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