복붙노트

경고 : mysqli_connect () : (HY000 / 1045) : 사용자 'username'@ 'localhost'에 대한 액세스가 거부되었습니다 (암호 사용 : 예)

PHP

경고 : mysqli_connect () : (HY000 / 1045) : 사용자 'username'@ 'localhost'에 대한 액세스가 거부되었습니다 (암호 사용 : 예)

내 config 파일이 다음과 같은 경우에도 localhost에서 위의 오류가 발생합니다.

<?php

    define("DB_HOST", "localhost");
    define("DB_USER", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "databasename");

    $db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

?>

이것은 일하는 데 사용되었지만 이제는 더 이상 사용하지 않습니다. 이 코드에 문제가 있습니까? 아니면 지금 작동하지 않습니까? 이것은 지금 제가 작업하고있는 튜토리얼입니다.

해결법

  1. ==============================

    1.사용자 이름, 호스트 및 암호의 조합은 서버에 연결할 수 없습니다. 서버에서 권한 테이블 (필요한 경우 권한 부여 재로드)을 확인하고 올바른 서버에 연결하고 있는지 확인하십시오.

    사용자 이름, 호스트 및 암호의 조합은 서버에 연결할 수 없습니다. 서버에서 권한 테이블 (필요한 경우 권한 부여 재로드)을 확인하고 올바른 서버에 연결하고 있는지 확인하십시오.

  2. ==============================

    2.wamp 업데이트를 실행중인 경우

    wamp 업데이트를 실행중인 경우

    define("DB_HOST", "localhost");
    

    귀하의 컴퓨터의 IP 주소 (내 192.168.0.25)입니다;

    define("DB_HOST", "192.168.0.25");
    

    콘솔에서 ipconfig를 입력하거나 mac / linux에서 ifconfig를 입력하여 창에서 찾을 수 있습니다.

  3. ==============================

    3.mysqli_connect (DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

    mysqli_connect (DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

    DB_SERVER 대신 DB_HOST를 사용하십시오.

  4. ==============================

    4.코드를 봐라. DB_HOST를 정의하고 DB_SERVER를 쿼리했습니다. DB_USER 및 DB_USERNAME 이 코드를 사용하십시오.

    코드를 봐라. DB_HOST를 정의하고 DB_SERVER를 쿼리했습니다. DB_USER 및 DB_USERNAME 이 코드를 사용하십시오.

    define("DB_SERVER", "localhost");
    define("DB_USER", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "databasename");
    
    $connect = mysqli_connect(DB_SERVER , DB_USER, DB_PASSWORD, DB_DATABASE);
    
  5. ==============================

    5.암호에 특수 문자가없고 보통 암호 (예 : 12345) 만 유지하면 작동합니다. 이것은 내가 본 것 중 가장 이상한 일이다. 나는 이것을 알아 내기 위해 약 2 시간을 보냈다.

    암호에 특수 문자가없고 보통 암호 (예 : 12345) 만 유지하면 작동합니다. 이것은 내가 본 것 중 가장 이상한 일이다. 나는 이것을 알아 내기 위해 약 2 시간을 보냈다.

    참고 : 아래에 언급 된 12345는 일반 암호입니다.

    GRANT ALL PRIVILEGES ON dbname.* TO 'yourusername'@'%' IDENTIFIED BY '12345';
    
  6. ==============================

    6.DB_USER로 정의하지만 DB_USERNAME으로 사용하십시오. 또한 PHP는 username @ localhost cant access라고 말합니다. @ localhost가 아닌 root.

    DB_USER로 정의하지만 DB_USERNAME으로 사용하십시오. 또한 PHP는 username @ localhost cant access라고 말합니다. @ localhost가 아닌 root.

    정의 또는 연결 매개 변수를 변경하십시오.

  7. ==============================

    7.이것은 귀하의 코드입니다 :

    이것은 귀하의 코드입니다 :

    <?php
    
        define("DB_HOST", "localhost");
        define("DB_USER", "root");
        define("DB_PASSWORD", "");
        define("DB_DATABASE", "databasename");
    
        $db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
    
    ?>
    

    이 메시지를 일으키는 유일한 오류는 다음과 같습니다.

    다음에 더 조심하십시오.

    PHP에서 코딩을 시작하려는 엔트리 레벨 프로그래머가 잘 모르는 것을 사용하지 않는 것이 좋습니다.

    조언으로 만, 더 유비쿼터스 한 (처음으로) 코드를 사용해보십시오.

    예 : define () 문을 사용하지 말고 $ db_user = 'root'와 같은 변수 선언을 사용하십시오.

    좋은 경험을 가지고 :)

  8. ==============================

    8.같은 문제가 XAMPP 7과 opencart Arabic 3에 직면했습니다. localhost를 실제 컴퓨터 이름으로 대체하면 문제가 다시 발생합니다.

    같은 문제가 XAMPP 7과 opencart Arabic 3에 직면했습니다. localhost를 실제 컴퓨터 이름으로 대체하면 문제가 다시 발생합니다.

  9. ==============================

    9.인수를 정의 할 때 오타가 있습니다. DB_HOST를 DB_SERVER로 변경하고 DB_USER를 DB_USERNAME으로 변경하십시오.

    인수를 정의 할 때 오타가 있습니다. DB_HOST를 DB_SERVER로 변경하고 DB_USER를 DB_USERNAME으로 변경하십시오.

    <?php
    
        define("DB_SERVER", "localhost");
        define("DB_USERNAME", "root");
        define("DB_PASSWORD", "");
        define("DB_DATABASE", "databasename");
        $db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
    
    ?>
    
  10. ==============================

    10.나와 같은 문제가 AWS RDS MySQL과 함께 발생합니다. 지금 당장 비슷한 질문을 던졌습니다. 다양한 소스를 보았지만이 스레드의 경우 거의 모든 대답이 부족합니다. 이 스레드가 도움이되었지만 서버에서 호스트 이름을 업데이트하기 위해 마음대로 조정할 수 있습니다. SSH에 액세스하고 다음 단계를 따르십시오.

    나와 같은 문제가 AWS RDS MySQL과 함께 발생합니다. 지금 당장 비슷한 질문을 던졌습니다. 다양한 소스를 보았지만이 스레드의 경우 거의 모든 대답이 부족합니다. 이 스레드가 도움이되었지만 서버에서 호스트 이름을 업데이트하기 위해 마음대로 조정할 수 있습니다. SSH에 액세스하고 다음 단계를 따르십시오.

    cd /etc/
    sudo nano hosts
    

    자, 여기에 호스트 네임을 추가 : 예 :

    127.0.0.1 localhost
    127.0.0.1 subdomain.domain.com [if cname redirected to endpoints]
    127.0.0.1 xxxxxxxx.xxxx.xxxxx.rds.amazonaws.com [Endpoints]
    

    이제 config / database.php를 다음과 같이 설정하십시오 :

    $active_group = 'default';
    $query_builder = TRUE;
    
    $db['default'] = array(
        'dsn'   => '',
        'hostname' => '35.150.12.345',
        'username' => 'user-name-here',
        'password' => 'password-here',
        'database' => 'database-name-here',
        'dbdriver' => 'mysqli',
        'dbprefix' => '',
        'pconnect' => FALSE,
        'db_debug' => TRUE,
        'cache_on' => FALSE,
        'cachedir' => '',
        'char_set' => 'utf8',
        'dbcollat' => 'utf8_general_ci',
        'swap_pre' => '',
        'encrypt' => FALSE,
        'compress' => FALSE,
        'stricton' => FALSE,
        'failover' => array(),
        'save_queries' => TRUE
    );
    

    여기서 35.150.12.345는 ec2 대시 보드> 네트워크 인터페이스> 설명 : RDSNetworkInterface >> IPv4 Public IP ('35 .150.12.345 ')에있는 IPv4 공용 IP입니다.

    참고 : IPV4 만 'hostname'옵션에서 작동합니다. 호스트 이름, cname, 도메인은 데이터베이스 연결 오류를 출력합니다.

  11. ==============================

    11.위의 질문에 답을 얻었습니다. 연결에서 동시에 4 개의 문자열 모두를 사용하는 것이 편안함을 느끼게하기 위해서입니다.

    위의 질문에 답을 얻었습니다. 연결에서 동시에 4 개의 문자열 모두를 사용하는 것이 편안함을 느끼게하기 위해서입니다.

    <?php
      define("DB_HOST", "localhost");
      define("DB_USER", "root");
      define("DB_PASSWORD", "");
      define("DB_DATABASE", "databasename");
    
      $db = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
      // you could test connection eventually using a if and else conditional statement, 
      // feel free to take out the code below once you see Connected!
      if ($db) {
        echo "Connected!";
      } else {
        echo "Connection Failed";
      }
    ?>
    
  12. ==============================

    12.이 오류가 루트가 아닌 다른 사용자와 연결하려고 시도했을 때 액세스를 제한하도록 설정했습니다.

    이 오류가 루트가 아닌 다른 사용자와 연결하려고 시도했을 때 액세스를 제한하도록 설정했습니다.

    mysql에서 호스트 %로 사용자 MofX를 설정하면 연결되지 않습니다.

    'MofX '@'127.0.0.1'과 같이 사용자의 호스트를 127.0.0.1로 변경했을 때 작동했습니다.

  13. ==============================

    13.시험

    시험

    define("DB_PASSWORD", null);
    

    그리고 그것들은 경고이다. 시험

    $db = @mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
    

    하지만 루트 암호를 설정하는 것이 좋습니다.

  14. ==============================

    14.동시에 두 개의 연결이 있습니까? 그렇다면 필요하지 않을 때마다 닫습니다.

    동시에 두 개의 연결이 있습니까? 그렇다면 필요하지 않을 때마다 닫습니다.

  15. ==============================

    15.

    $db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
    
    Put " DB_HOST " instead of " DB_SERVER " also 
    put " DB_USER " Instead of " DB_USERNAME " 
    

    그것이 잘 작동하는 것보다!

  16. ==============================

    16.변경해보십시오.

    변경해보십시오.

    define("DB_SERVER", "localhost");
    

    이에:

    define("DB_SERVER", "127.0.0.1");
    
  17. from https://stackoverflow.com/questions/25174183/warning-mysqli-connect-hy000-1045-access-denied-for-user-usernameloca by cc-by-sa and MIT license