2011-02-25 7 views
0

Webサーバー上に私のローカルサーバーと同期したいリモートサーバーがあります。phpmyadminは同期します

マスターとスレーブの関係はありますが、Webホストは仮想サーバーとして動作していますが、質問すると、サーバーの自分の部分をマスターサーバーに設定できますか?

他にも、ホストやローカルサーバーのいずれかでphpmyadminを使って手動で同期する方法がありました(どちらもmysql/phpmyadminを実行していますが、 )ホストのローカルから

私はホストから、またはローカルのいずれかから同期しようとすると、私は次のエラーを取得する:

"Cannot connect to target/source"

私はこの問題を回避するにはどうすればよいですか?私はDBの相互接続の初心者ですので、私はローカルまたはリモートのいずれかの任意の場所を有効にする必要がありますか?

答えて

6

あなたはアクセス権の問題がある可能性がありますように私はここに開始するOUT

TIME

、ここでの問題のカップルを持っているようです。最初にローカルIPアドレスにリモートmySQLデータベースに接続する権限があることを確認することをお勧めします。設定に応じて、cPanelやシェルアクセスなどのホスティングコンサルタントであるphpMyAdminで設定することができます。リモートアクセス用の強力なパスワードを使って別のユーザーを設定することをお勧めします。 インターネットサービスプロバイダーに連絡を取っておらず、手配していない場合は、ローカルインターネット接続に静的IPアドレスが必要です。

phpMyAdminでは、十分なアクセス権がある場合は、「ユーザー権限」タブで「ログイン情報」の下に「ホスト」を設定します。明らかなセキュリティ上の理由から、「任意のホスト」の設定をお勧めしません。

cPanelでは、「データベース」の下にIPアドレスを設定できる「リモートmySQL」があります。

は最後にSSHで、

  1. コメント
  2. 、Ubuntuの上でそれが "/etc/mysql/my.conf" にあり、そのようなVIやナノなどお好みのエディタを使用してMySQLの設定ファイルを開きます"#bind-address = 127.0.0.1"のようになります。
  3. "/etc/init.d/mysql restart"でmySQLを再起動します。
  4. "mysql -u root -p"、
  5. 新規ユーザーの場合、 "CREATE USER 'MY_USERNA "MY_PASSWORD"で識別された "ME" @ 'localhost' ""
  6. の後に "MY_DATABASE 'に* ALL' PRIVILEGESを付与する* TO 'MY_USERNAME'@'12.34.56.78' 'MY_PASSWORD'でIDENTIFIED; - IP "12.34.56.78"を実際のIPアドレスに置き換えてください。
  7. これで、OKの行に沿った確認が行われるはずです。
  8. は最後に「終了」コマンドでMySQLを終了し、「/etc/init.d/mysql再起動」

注意して再起動します。私は、リモートアクセス用の両方のMySQLのインストールを設定することをお勧めします。

私は今、自分のローカルマシン上の小さなスクリプトを実行することによって、これをテストする

<?php 
$host = 'mysql_remoteip'; 
$user = 'mysql_username'; 
$pass = 'mysql_password'; 
$db = 'mysql_database'; 

$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error()); 
mysql_select_db($db) or die("OOPS! I can not connect to the remote mySQL database, I was given the following error: ".mysql_error()); 
$sql = "SELECT column FROM table WHERE column='my_var'"; 
$result = mysql_query($sql); 
while($row = mysql_fetch_array($result)) { 
if(empty($row['column']) { 
echo "WHOOPS! I could not get information from the mySQL, was there data for me to retrieve in the database?"; 
} else { 
echo "The data I retrieved is:<br />" 
echo $row['column']; 
} 
} 
?> 

NOTEのようなものをお勧めします:スクリプトが正しく動作するためには、データベース内のデータを持っている必要があり、データのない結果をスクリプトがデータを取得できなかったというメッセージが表示されますが、データベースにアクセスできたかどうかを確認できますが、100%稼働しているかどうかは保証されません。

マスタまたはスレーブはい、それはあなたがphpMyAdminのに十分なアクセス

を持って提供することも可能である

:あなたが提供するウィザードがあります

  1. 「レプリケーション」タブの下にあなたはmySQL設定ファイル(これはUbuntuの "/etc/mysql/my.conf"にあります)に設定するコードを持っています。
  2. リンクをクリックしてマスターを設定してくださいサーバー
  3. はコード
  4. をコピーし、フォームに情報を入力しますが、設定ファイルの再起動MySQLを更新し、[移動]ボタンをクリックすると、あなたの設定ファイル(上記の場所)に移動し、phpMyAdminの
  5. が提供するコードを追加します。 phpMyAdmin、これは変更を確認します
  6. "複製"タブの下でスレーブサーバを設定するためのリンクをクリックしてください
  7. あなたが設定ファイルに一意のサーバIDを持っていることを確認してください。 phpMyAdminをファイルの[mysqld]セクションに追加
  8. Compl必要な情報を入力してGOをクリックしてください。

これはレプリケーションを設定する必要があります。

SYNCHRONIZE

他のすべてが、その後のphpMyAdminで、タブを「同期」の情報を入力し、離れてあなたが行くに行く失敗した場合、あなたはわずか2秒後に次のページの同期を確認する必要があり、あなたは終わった、それは簡単です。

私は個人的にマスター/スレーブレプリケーションの設定をしていますが、エラーや問題をレプリケートするために「ライブ」データが必要なときに同期化するように設定しています。これは、月。ライブデータがローカルに必要な場合は、マスタ/スレーブレプリケーションを設定します。

+0

同期タブはどこですか?最新のPhpmyadminをダウンロードしましたが、このタブは見つかりませんでした。ありがとう – pal4life

+0

@ pal4life [この質問](http://stackoverflow.com/questions/18721588/where-is-the-synchronize-tab-under-phpmyadmin)バージョン4.0.0から残念なことに削除されました。私はそれが非常に有用であると分かったので、本当に残念です。 – Ryan

+0

はい私はここにコメントをしてもらえませんでしたが、その質問をしました。 :) – pal4life

関連する問題