>  기사  >  데이터 베이스  >  PHP를 로컬에서 사용하여 MySQL 데이터베이스에 연결할 때 \"권한 거부\" 오류가 발생하는 이유는 무엇입니까?

PHP를 로컬에서 사용하여 MySQL 데이터베이스에 연결할 때 \"권한 거부\" 오류가 발생하는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-03 02:18:03433검색

Why Am I Getting a

로컬 호스트를 통해 데이터베이스에 연결할 때 권한 거부 오류

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.