-1

わかりましたので、サイトの半分を別のサーバーに移動しようとしているクライアントがいます...この場合でも、両方のデータベースからデータをプルする必要があります。だから私は新しいサイトを持っていて、古いサイトでmysql dbクエリを実行する必要があるので、古いナビゲーションを含めることができます....しかし、私がそうするとき

  <?php include("http://www.othersite.com/includes/db.php"); ?>
  <?php include("http://www.othersite.com/includes/nav.php"); ?>

私は得る

Warning: mysql_query(): Access denied for user 'www-data'@'localhost'
(using password: NO) in /vol/www/othersite.com/public_html/includes/nav.php
on line 223 Warning: 

新しいサイトから別のデータベースにアクセスし、それが新しいデータベース接続に干渉しないようにするにはどうすればよいですか

4

4 に答える 4

1

あなたが使用することができます:

$newLink = mysql_connect($host, $user, $password);
mysql_select_db($db, $newLink);

$newLink をクエリに追加して、次のような「古い」データベース リンク接続を使用しないようにする必要があります。

mysql_query('SELECT * FROM USERS', $newLink);

それが役に立てば幸い

PS db.phpnav.phpからコードを配置すると、より簡単になります

于 2011-01-28T15:29:09.123 に答える
0

これらのデータベースへの接続に使用される実際のコードを (パスワードを空白にして) 提示する必要があります。しかし、それがなくても、リモートサーバーは呼び出されていないと言えますlocalhost

リモート サイトからこれらのファイルを含めているようです。コードはまだローカル サーバーで実行されるため、この方法では機能しません。

また、リモート MySQL がリモート接続を許可していること、および適切な権限を持つ MySQL ユーザー アカウントが作成されていることも確認する必要があります。

参照: http://dev.mysql.com/doc/refman/5.5/en/privilege-system.html

于 2011-01-28T15:26:23.477 に答える
0

...これでも、両方のデータベースからデータを取得する必要があります。

これで頑張ってください!

私がこれを行う方法:

  1. コードをサーバー #2 にコピーする
  2. サーバー#1からデータを取得するように調整します
  3. DNS レコードをサーバー #1 の IP からサーバー #2 の IP に変更します
  4. 1日待つ
  5. サーバー#1で5分間「サーバーメンテナンス」をブロックします
  6. サーバー#2から#1へのrsync db /サーバー#2を調整して、それ自体からデータをフェッチします
  7. 「サーバーメンテナンス」を削除
  8. サーバー #1 を eBay で販売して大騒ぎする

注: 確かに、プライベート ホストについて話している場合は..サーバーをオフラインにせずに同じことを行う、はるかに成功しているが複雑なメカニズムがあります。

于 2011-01-28T15:27:30.453 に答える
0

http://www.othersite.com/includes/db.phpブラウザにロードします。PHP コードが表示されていないことに気付くでしょう。得られるのは、PHP コードの出力です。つまり、すべてのìnclude構造を変更してリモート HTTP サーバーを指すようにすると、ソース コードにアクセスできなくなるため、サイトが壊れてしまうだけです。

さて、あなたの質問に答えると、リモートデータベースに接続したい場合は、DBパスワードを持っている場所を見つけてデータを変更する必要があります:localhost新しいサーバーアドレス、www-data新しいユーザーなど.ただし、おそらく設定する必要があります新しいサーバーの IP アドレスからの外部接続を受け入れるようにします。

于 2011-01-28T15:27:46.710 に答える