mysqli_connect(): (HY000/2002) : No such file or directory 오류는 PHP의 mysqli 확장이 MySQL 서버에 연결할 때 UNIX 소켓을 찾지 못할 때 발생합니다. 이 문제는 보통 MySQL이 소켓 파일을 기대하는 위치와 PHP가 소켓 파일을 찾으려는 위치가 일치하지 않을 때 발생합니다.
다음은 이 오류를 해결하는 방법 중 하나입니다:
MySQL 소켓 파일 위치 확인
◼︎ 터미널에서 mysql_config --socket 명령을 실행하여 MySQL이 사용하는 소켓 파일의 위치를 확인합니다.
PHP의 php.ini 파일 수정
❶ php.ini 파일을 열고 mysqli.default_socket 설정을 찾습니다. (이 설정이 없으면 추가해야 합니다.)
❷ 이 설정을 위에서 확인한 소켓 파일 경로로 업데이트합니다.
예를 들어
Mysql
mysqli.default_socket = /var/lib/mysql/mysql.sock
(위의 /var/lib/mysql/mysql.sock 경로는 예제이므로, 실제 mysql_config --socket에서 반환된 경로로 대체해야 합니다.)
PHP와 웹 서버 재시작
◼︎ 변경 사항을 적용하려면 PHP와 웹 서버 (예: Apache, Nginx)를 재시작해야 합니다.
IP 주소 사용
소켓 문제를 해결하지 않고 빠르게 연결 문제를 우회하려면, localhost 대신 127.0.0.1을 사용하여 MySQL 서버에 연결할 수 있습니다. 이렇게 하면 TCP/IP 연결을 사용하여 서버에 연결합니다.
Mysql
$conn = mysqli_connect('127.0.0.1', 'username', 'password', 'database');
위의 단계 중 하나 또는 여러 단계를 따라 오류를 해결할 수 있습니다.