2012-04-29 1 views
2

테스트를 위해 내 로컬 개발 사이트를 다른 로컬 사이트로 처음 전송했으며 새 사이트의 데이터베이스에 액세스 할 수 없습니다. 두 컴퓨터 모두 Mac에서 XAMPP를 실행 중입니다. 테스트 사이트에서 XAMPP를 성공적으로 설치했으며 데이터베이스 파일을 Applications/XAMPP/xamppfiles/var/mysql에 저장했습니다. 테스트 사용자는 Apache와 MySQL을 시작하고 PHPMyAdmin에서 데이터베이스 파일을 볼 수 있습니다. 테스트 사용자는 오류 메시지없이 로컬 웹 사이트에 액세스 할 수도 있습니다.시도 할 다른 로컬 호스트로 웹 사이트 이동 - 아무런 오류가 없지만 데이터가 표시되지 않습니다.

EDIT : 데이터베이스 파일이 내 끝에 파일을 복사/압축하고 테스트 끝에 복사 된 파일을 압축 해제/삭제하여 복사했습니다.

그러나 로컬 웹 사이트는 데이터베이스를 보지 않는 것 같습니다. 데이터가 단지 기본을 보여 반환 해야하는 페이지는 "죄송합니다, 우리는 매진하고 있습니다"메시지 또는 쇼 그래픽을 "이미지를 찾을 수 없습니다"하고, 관리자가 로그인 할 수 없습니다.

인덱스 페이지는

를 호출 연결 문제가 있었다면

<?php 
// Set the error reporting level 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 

// Start a PHP session 
session_start(); 
$_SESSION['docroot'] = $_SERVER['DOCUMENT_ROOT'] . '/mysite/'; 

// Include site constants 
include_once $_SERVER['DOCUMENT_ROOT'] . "/inc/constants.inc.php"; 

    if (!isset($_SESSION['token'])) 
{ 
    $_SESSION['token'] = md5(uniqid(rand(), TRUE)); 
    $_SESSION['token_time'] = time(); 
} 

// Create a database object 
try { 
    $dsn = "mysql:host=".DB_HOST.";dbname=".DB_NAME; 
    $_db = new PDO($dsn, DB_USER, DB_PASS); 
} catch (PDOException $e) { 
    echo 'Connection failed: ' . $e->getMessage(); 
    exit; 
} 
?> 

구성

include_once "common/base.php"; 

, 나는 INC에서 가짜 값/constants.inc.php을 상수를 변경하여 확인할 수있는 오류 메시지가 반환 보여야하는데 . 그래서 나는 연결 문제가 있다고 생각하지 않습니다.

내 위치에 계시다면 무엇을 확인 하시겠습니까?

편집 : 방금 PHPMyAdmin의 내보내기 기능에 대해 알았습니다. 복사 된 db 파일을 삭제하고 PHPMyAdmin에서 파일을 내 보낸 다음 테스트 컴퓨터에서 파일을 가져와 봅니다.

편집 : 난 그냥 테스트 시스템은 인덱스 페이지에 간단한

$sql = "SELECT FirstName From users"; 

    $stmt = $_db->prepare($sql); 
    $stmt->execute(); 
    $aaData = array(); 

    while($row = $stmt->fetch(PDO::FETCH_NUM)){ 
    $aaData[] = $row; 
    } 

    $stmt->closeCursor(); 

print_r($aaData); 

을했다, 그것은 사용자의 정확한 목록을 보여줍니다. 따라서 연결은 양호합니다 ( ). 다른 곳에 문제가 있습니다. 다들 내가 여전히 복사 된 DB를 삭제하고 "올바른"방법 (내보내기/가져 오기)을 사용해야한다고 말하겠습니까, 아니면 시간 낭비입니까?

최종 편집 : 내보내기/가져 오기를 사용하여 이동을 다시 시도했으며 모든 것이 잘 작동합니다. 모두에게 감사드립니다.

+2

이 새 호스트에서 데이터베이스를 확인 했습니까?데이터를 이전 했습니까? 아니면 DB 구조 만 마이그레이션 했습니까? – rcdmk

+0

또한 DB 파일을 mysql 디렉토리에 복사 했습니까? – rcdmk

+1

설정 파일/ – Sudantha

답변

2

먼저 mysql 데이터 디렉토리의 파일을 압축하고 이동하는 것이 가장 좋은 방법은 아닙니다. mysql 서버를 이동하기 전에 완전히 플러시/셧다운했다면 작동 할 수 있습니다. mysqldump 나 유사한 도구를 사용하여 한 번에 전체 데이터베이스를 이동하는 것이 더 낫다.

당신이 응용 프로그램의 데이터베이스 파일을 옮긴 것처럼 들리지만 사용자/암호 자격 증명을 새로운 MySQL 설정에 추가하는 것을 잊어 버린 것 같습니다. 당신은 phpMyAdmin을 사용한다고 언급했기 때문에, 다른 머신에 로그인 할 때 "Privileges"탭을 클릭하고 dev 머신의 Privileges 탭과 일치하는지 확인하십시오.

그렇지 않은 경우 파일을 압축 및 복사하여 일부 또는 모든 테이블이 손상되었을 가능성이 큽니다. phpMyAdmin의 내보내기 및 가져 오기 기능을 사용하여 데이터베이스를 이동하십시오. 데이터가 매우 큰 경우 알려 주시면 실행할 명령 줄 항목을 제공 할 수 있습니다.

희망이 도움이됩니다.

+0

감사합니다. Michael, 이미 내보내기/가져 오기를 사용하여 이동을 다시 처리하고 대상에 대한 사용 권한을 확인 했으므로 모두 정상입니다. – earachefl

+0

mysql_connect() 줄에서 사용중인 사용자 이름/암호를 확인 했습니까? 파일에 대한 사용 권한을 언급하지는 않았지만 사용자가 스크립트에서 MySQL 연결을 만드는 데 사용했습니다. –

관련 문제