2012-02-09 2 views
1

테스트 도메인에서 실제 도메인으로 웹 사이트를 옮겼으며 PHP 스크립트에서 DB 정보를 변경했지만 데이터베이스, 호스트, 사용자 이름이 올바르다는 것을 3 번 확인했지만 여전히 오류가 발생합니다. 및 암호. 내가 놓친 게 있니? 이 코드는 내가 연결하는 데 사용하는 코드입니다. 데이터베이스 정보가 정확합니다.웹 사이트 이동 후 데이터베이스 오류가 발생 했습니까?

$dbhost = "localhost"; 
$dbuser = "username"; 
$dbpass = "password"; 

function dbConnect($db='dbname') { 
    global $dbhost, $dbuser, $dbpass; 

    $dbcnx = @mysql_connect($dbhost, $dbuser, $dbpass) 
     or die('Database problem.'); 

    if ($db!='' and [email protected]_select_db($db)) 
     die('Database not available at the moment. Please try again in a couple of minutes.'); 

    return $dbcnx; 
} 

그런 다음 스크립트에서 dbConnect('dbname') 함수를 호출합니다. 위의 코드에서 두 번째 오류는 "데이터베이스를 사용할 수 없습니다. 몇 분 후에 다시 시도하십시오."라는 오류가 나타납니다.

내가 여기에없는 것을 볼 수 있습니까?

편집 :

실제 MySQL의 오류가 있습니다 : 당신은 당신의 코드에서 오류 억제 (@)를 가지고가는 경우에

Access denied for user 'username'@'localhost' to database 'dbname' 
+3

는 MySQL의 기능에서 오류를 억제 중지'@'를 제거! 'mysql_connect()'다음에'mysql_error()'를 호출하면 여기서 어떤 일이 일어나는지 볼 수 있습니다. –

+0

'@ '오류 방지 기능을 사용하는 것이 좋습니다 _. 대신'display_errors'가 개발시에 켜져 있는지, 프로덕션에서는 꺼져 있는지 확인하십시오. –

+1

아직 데이터베이스를 만들지 않았거나 데이터베이스 이름 ('dbname')이 잘못되었습니다. PhpMyAdmin 또는 명령 줄을 사용하여 수정하십시오. –

답변

2

이 같은 소리 단서 더 줄 수 있습니다 사용 권한 문제 일 수 있습니다. MySQL과 실행에의

시도 로깅 :

grant all on <your db name>.* to <your user>@localhost identified by '<your password>'; 
flush privileges. 
+0

phpMyAdmin에서 실행 해 보았는데 오류가 발생했습니다 : # 1044 - 'username'@ 'localhost'사용자가 'dbname'데이터베이스에 액세스가 거부되었습니다. 이것은 공유 호스팅 계정이므로 root 권한이 없습니다. – robert

+0

CLI에 연결할 수 있으면 실행해야합니다. phpMyAdmin을 사용하지 마십시오. "루트"사용자를 사용하여 CLI를 사용하여 mysql에 로그인 한 다음 dbname. *에서 all을 'password'로 식별되는 username @ localhost에 부여하십시오. 플러시 특권; 당신이 연결할 수 있어야합니다. – FreudianSlip

0

그것은 당신에게

+0

실제 DB 오류가 발생했습니다. 죄송합니다. – robert

관련 문제