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 중국어 웹사이트의 기타 관련 기사를 참조하세요!