2012-04-29 4 views
2

ローカルdevサイトを別のローカルサイトに転送してテストしています。どちらのコンピュータもMacでXAMPPを実行しています。テストサイトはXAMPPを正常にインストールし、データベースファイルをApplications/XAMPP/xamppfiles/var/mysqlに配置しました。テストユーザーは、ApacheとMySQLを起動し、PHPMyAdminのデータベースファイルを参照することができます。テストユーザーは、エラーメッセージなしでローカルWebサイトにアクセスすることもできます。試しにウェブサイトを別のローカルホストに移動してもエラーは表示されませんが、データは表示されません

EDIT:データベースファイルは、私の最後にファイルをコピー/圧縮し、コピーしたファイルをテストエンドで解凍/ドロップすることによってコピーされました。

ただし、ローカルWebサイトはデータベースを認識していないようです。データは単にデフォルトを示して返すことを想定しているページは、「申し訳ありませんが、我々は完売している」というメッセージまたはshowグラフィックスを「画像が見つかりません」、および管理者がログインすることができません。

インデックスページは

を呼び出します接続に問題があった場合、私は値をおかしなするINC/constants.inc.phpで定数を変更することで確認することができ、エラーメッセージが返さ見に期待

<?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"; 

。だから私は接続の問題があるとは思わない。

あなたが私の立場にいたら、何を確認しますか?

EDIT: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); 

を行う持っていた、それはユーザーの正しいリストが表示されます。だから接続は良いです、 とそこに問題があります。あなたはまだ私はコピーされたデータベースを削除し、 "正しい"方法(輸出/インポート)を使用する必要があると言うか、それは時間の無駄ですか?

最終編集:エクスポート/インポートを使用して移動をやり直しました。すべてがうまくいきました。ありがとうございます。

+2

この新しいホストでデータベースをチェックしましたか?データを移行したのか、DBの構造だけを移行しましたか? – rcdmk

+0

また、DBファイルをmysqlディレクトリにコピーしましたか? – rcdmk

+1

設定ファイル/ – Sudantha

答えて

2

まず、mysqlデータディレクトリ内のファイルを圧縮して移動することは、最善の方法ではありません。 mysqlサーバを移動する前に完全にフラッシュ/シャットダウンしている場合にはうまく動作します。あなたは一度にデータベース全体を移動するためにmysqldumpや同様のツールを使う方が良いでしょう。

あなたのアプリケーションのデータベースファイルを移動したように聞こえますが、ユーザー/パスワードの資格情報を新しいMySQL設定に追加するのを忘れていると思います。あなたはphpMyAdminを使用していると言いましたので、他のマシンにログインするときは "Privileges"タブをクリックし、それがあなたの開発マシンのPrivilegesタブと一致することを確認してください。

もしそうでなければ、ファイルを圧縮してコピーすると、テーブルの一部またはすべてが壊れている可能性があります。 phpMyAdminのエクスポートとインポート機能を使用して、データベースを移動してみてください。データが非常に大きい場合は私に知らせてください。実行するコマンドラインエントリをいくつか与えることができます。

これが役に立ちます。

+0

マイケルありがとう、私はすでにエクスポート/インポートを使用して移動をredidし、ターゲットの権限をチェックし、すべてがうまくいきます。 – earachefl

+0

mysql_connect()行で使用しているユーザ名/パスワードを確認しましたか?私はファイルのパーミッションを参照していませんでしたが、ユーザはあなたのスクリプトからMySQL接続を作成していました。 –

関連する問題