로컬 호스트를 통해 데이터베이스에 연결할 때 권한 거부 오류
PHP를 사용하여 MySQL 데이터베이스에 연결하려고 할 때 사용자는 종종 두려운 문제에 직면합니다. 명령줄에서 성공적으로 실행했음에도 불구하고 로컬에서 스크립트를 실행할 때 "오류: MySQL에 연결할 수 없습니다. 디버깅 오류 번호: 2002 디버깅 오류: 권한 거부됨" 문제가 발생합니다.
문제 조사
이 수수께끼 같은 이분법을 조사한 결과 SELinux 보안 정책이 근본적인 원인이라는 사실이 밝혀졌습니다. 기본적으로 "httpd_can_network_connect_db" 정책은 비활성화되어 웹 서버가 원격 데이터베이스와 연결을 설정하는 것을 방지합니다.
정책 확인
이 가정을 확인하려면, 다음 명령을 실행하세요.
getsebool -a | grep httpd
"httpd_can_network_connect_db"가 "끄기"로 설정된 경우 아래 해결 방법을 진행하세요.
문제 해결
상황을 해결하려면 정책을 영구적으로 활성화해야 합니다. 이는 다음 명령을 사용하여 수행됩니다.
setsebool -P httpd_can_network_connect_db 1
웹 서버가 원격 데이터베이스와 통신할 수 있도록 허용함으로써 이 수정은 권한 거부 오류를 해결하고 웹 애플리케이션 내에서 원활한 데이터베이스 연결을 위한 길을 열어줍니다.
위 내용은 PHP를 로컬에서 사용하여 MySQL 데이터베이스에 연결할 때 \"권한 거부\" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!