>데이터 베이스 >MySQL 튜토리얼 >사용자 \'test2\'@\'localhost\'에 대해 MySQL \'액세스 거부\' 오류가 발생하는 이유는 무엇입니까?

사용자 \'test2\'@\'localhost\'에 대해 MySQL \'액세스 거부\' 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-30 05:46:14873검색

Why am I Getting a MySQL

MySQL 액세스 거부 오류: 'test2'@'localhost'

"SQLSTATE[HY000] [1045] 액세스가 거부되었습니다. 사용자 'test2'@'localhost'"의 경우 이는 사용자 'test2'로 MySQL 데이터베이스에 연결을 시도했음을 나타냅니다. 자격 증명 또는 인증 문제로 인해 'localhost' 호스트가 실패했습니다.

기본 원인

이 오류는 여러 가지 이유로 발생할 수 있습니다.

  • 잘못된 자격 증명: 사용자 이름 'test2'와 비밀번호 'computer'가 제공되었는지 확인하세요. 애플리케이션 구성(app.php)에서 둘 다 유효합니다.
  • 사용자가 생성되지 않음: 'test2'라는 MySQL 사용자가 데이터베이스에 존재하는지 확인하세요. 권한이 있는 사용자(예: 루트)로 다음 쿼리를 실행하여 이를 확인할 수 있습니다.

    SELECT user, host FROM mysql.user WHERE user = 'test2';

    쿼리가 행을 반환하지 않으면 해당 사용자가 존재하지 않는 것입니다.

  • 사용자 접근 제한: 사용자가 존재하더라도 데이터베이스에 연결하거나 지정된 데이터베이스에 접근할 수 있는 권한이 충분하지 않을 수 있습니다. (직업). 작업 데이터베이스에 대해 사용자에게 부여된 권한을 확인하십시오.

문제 해결 단계

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

  1. 자격 증명 확인: 사용자 이름과 비밀번호를 다시 입력하세요. 올바른지 확인하세요.
  2. 데이터베이스 사용자 생성(누락된 경우): 'test2' 사용자를 찾을 수 없는 경우 다음 쿼리를 사용하여 생성하세요.

    CREATE USER 'test2'@'localhost' IDENTIFIED BY 'computer';
  3. 권한 부여: 'test2'가 사용자는 작업 데이터베이스에 액세스하는 데 필요한 권한을 가지고 있습니다. 권한 있는 사용자로 다음 쿼리를 실행합니다.

    GRANT SELECT, UPDATE, INSERT, DELETE ON jobs.* TO 'test2'@'localhost';
  4. 권한 플러시: 권한을 변경한 후 플러시하여 적용되도록 하세요.

    FLUSH PRIVILEGES;

추가 고려사항

  • 연결 문자열에서 호스트 값을 확인하세요. 이는 MySQL 서버가 실행 중인 호스트와 일치해야 합니다. 이 경우 동일한 시스템의 데이터베이스에 연결하는 경우 'localhost'가 정확합니다.
  • 연결을 차단할 수 있는 방화벽이나 바이러스 백신 소프트웨어를 비활성화합니다.
  • 호스트 이름 변경을 고려하세요. 데이터베이스 사용자를 '%'로 설정하면 모든 호스트로부터의 연결이 허용됩니다. 그러나 이는 특정 호스트 이름을 지정하는 것보다 보안성이 낮습니다.

위 내용은 사용자 \'test2\'@\'localhost\'에 대해 MySQL \'액세스 거부\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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