다음 에디터는 MySQL이 localhost를 통해 데이터베이스에 연결할 수 없는 문제를 완벽하게 해결하는 기사를 가져옵니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 에디터를 따라가서 살펴보자.
문제:서버의 PHP 프로그램이 localhost 주소를 통해 데이터베이스에 접속할 수 없는데, 설정되어 있는 경우 127.0.0.1 까지는 연결이 정상이며, 다른 데이터베이스 서버와의 연결도 정상입니다. MySQL의 권한이 올바르게 설정되어 있으며, mysql 명령줄 클라이언트를 통해 데이터베이스가 정상적으로 연결될 수 있습니다.
분석: 소켓이 올바르게 설정되지 않은 일반적인 상황입니다.
MySQL 데이터베이스에 연결하는 방법에는 TCP/IP(일반적으로 이해되는 포트 유형)와 Unix 소켓(일반적으로 소켓 또는 양말이라고 함)의 두 가지 방법이 있습니다. 대부분의 경우 localhost를 사용하여 로컬 머신 127.0.0.1을 나타낼 수 있지만, MySQL에 접속할 때에는 둘을 혼용할 수 없으며, MySQL의 권한 설정에서도 localhost와 127.0.0.1을 별도로 설정한다. 127.0.0.1로 설정하면 시스템은 TCP/IP를 통해 데이터베이스에 연결되고, localhost로 설정되면 시스템은 소켓을 통해 데이터베이스에 연결됩니다.
해결책: 먼저 로컬 MySQL 소켓 파일이 어디에 있는지 확인하세요. 확인 명령은 다음과 같습니다.
mysqld --verbose --help | grep socket
출력 결과는 소켓 파일이 is 인터페이스 파일의 위치입니다. 예를 들어 이 서버는
socket /var/run/mysqld/mysqld.sock
를 표시한 다음 이에 맞게 PHP의 구성 파일 php.ini를 수정합니다.
이 항목 찾기:
mysql.default_socket =
일반적으로 이 항목은 비어 있으므로 다음으로 변경합니다.
mysql.default_socket = /var/run/mysqld/mysqld.sock
이전 단계를 여기에 작성해야 합니다 쿼리 파일에 상황에 맞게 설정하세요. 이때 PHP 구성이 수정되었습니다. CLI(명령줄) 모드이거나 CGI 모드인 경우 즉시 적용됩니다. FASTCGI 모드인 경우 fastcgi 프로세스를 다시 시작해야 합니다.
위 내용은 MySQL이 localhost를 통해 데이터베이스에 연결할 수 없는 문제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!