>데이터 베이스 >MySQL 튜토리얼 >Localhost에서 MySQL에 연결할 때 \'권한 거부\' 메시지가 나타나는 이유는 무엇입니까?

Localhost에서 MySQL에 연결할 때 \'권한 거부\' 메시지가 나타나는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-02 16:54:29890검색

Why Am I Getting

MySQL에 연결할 수 없음: 권한이 거부됨

PHP를 사용하여 MySQL 데이터베이스에 연결하려고 하면 "권한"을 나타내는 오류가 발생할 수 있습니다. 거부됨." 이 오류는 명령줄에서 또는 localhost와 같은 웹 서버를 통해 스크립트에 액세스할 때 발생할 수 있습니다.

특히 다음 스크립트를 사용하여 localhost에서 데이터베이스에 연결하려고 할 때:

<code class="php">$host = '155.30.136.20';
$user = 'abc_user';
$pass = 'xxxxxxxxx';
$dbname = 'welcome';
$link = mysqli_connect($host, $user, $pass,$dbname);

// Connection checks and error handling omitted for brevity</code>

"오류: MySQL에 연결할 수 없습니다. 디버깅 오류 번호: 2002 디버깅 오류: 권한이 거부되었습니다"라는 오류가 나타날 수 있습니다. 이 오류는 사용자에게 데이터베이스 연결을 설정하는 데 필요한 권한이 없음을 나타냅니다.

명령줄과 localhost 실행 간의 불일치 이유는 SELinux 보안 정책과 관련이 있을 수 있습니다. 기본적으로 httpd_can_network_connect_db 정책은 비활성화되어 웹 서버가 원격 데이터베이스에 연결하는 것을 방지합니다.

이 문제를 해결하려면 다음 단계를 따르십시오.

  1. getsebool을 실행하여 SELinux 상태를 확인하세요. -a | grep httpd.
  2. httpd_can_network_connect_db가 "꺼짐"인 경우 setsebool -P httpd_can_network_connect_db를 실행하여 활성화합니다.

이러한 변경을 수행한 후 웹 서버는 다음에 대한 연결을 설정할 수 있어야 합니다. "권한 거부됨" 오류가 발생하지 않고 데이터베이스를 삭제합니다.

위 내용은 Localhost에서 MySQL에 연결할 때 \'권한 거부\' 메시지가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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