ここでいくつか問題があるようです、
タイムアウト
権限の問題があるかもしれないので、ここから始めます。まず、ローカルIPアドレスにリモートmySQLデータベースへの接続権限があることを確認することをお勧めします。その逆も同様です。設定によっては、phpMyAdmin、cPanelなどのホスティング領事館またはシェルアクセスで設定できる場合があります。リモートアクセス用に強力なパスワードを使用して別のユーザーを設定することをお勧めします。ローカルインターネット接続に静的IPアドレスがない場合は、インターネットサービスプロバイダーに連絡して手配してください。
phpMyAdminで、十分なアクセス権がある場合は、[ユーザー権限]タブを使用し、[ログイン情報]の下に[ホスト]を設定します。明らかなセキュリティ上の理由から、「任意のホスト」設定はお勧めしません。
cPanelの「データベース」の下に、IPアドレスを設定できる「リモートmySQL」があります。
最後にSSHで、
- mySQL構成ファイルをVIやNanoなどのお気に入りのエディターで開きます。Ubuntuでは、「/ etc / mysql/my.conf」にあります。
- 「bind-address=127.0.0.1」をコメントアウトして、「#bind-address=127.0.0.1」のようにします。
- 「/etc/ init.d/mysqlrestart」でmySQLを再起動します。
- 「mysql-uroot-p」を使用してmySQLにログインします。
- 新しいユーザーの場合、「CREATE USER'MY_USERNAME' @'localhost' IDENTIFIEDBY'MY_PASSWORD'」
- 「GRANTALLPRIVILEGESON'MY_DATABASE'。*TO'MY_USERNAME'@ '12.34.56.78' IDENTIFIEDBY'MY_PASSWORD';」が続きます。 -IP「12.34.56.78」を実際のIPアドレスに置き換えてください。
- これで、クエリOKの行に沿って確認ができるはずです。
- 最後に「quit」コマンドでmysqlを終了し、「/ etc / init.d/mysqlrestart」で再起動します
注:リモートアクセス用に両方の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'];
}
}
?>
注:スクリプトが正しく機能するには、データベースにデータが必要です。データがない結果では、スクリプトがデータを取得できなかったというメッセージが表示されます。これにより、データベースにアクセスできるかどうかは確認されますが、 100%動作していることを確認しないでください。
マスターまたはスレーブ
はい、可能です。十分なアクセス権があれば可能です
phpMyAdminの場合:
- [レプリケーション]タブの下に、mySQL構成ファイル(Ubuntuでは "/etc/mysql/my.conf"にあります)でこれを設定するためのコードを提供するウィザードがあります。 >
- リンクをクリックしてマスターサーバーを構成します
- フォームに情報を入力し、コードをコピーします
- 構成ファイル(上記の場所)に移動し、phpMyAdminによって提供されるコードを追加します
- 構成ファイルを更新したら、mySQLを再起動し、phpMyAdminの[移動]ボタンをクリックすると、変更が確認されます
- ここで、[レプリケーション]タブで、リンクをクリックしてスレーブサーバーを構成します
- 設定ファイルに一意のserver-idがあることを確認してください。そうでない場合は、phpMyAdminによって提供される行をファイルの[mysqld]セクションに追加してください
- 必要な情報を入力して、[実行]をクリックします
これでレプリケーションが設定されます。
同期
他のすべてが失敗した場合は、phpMyAdminで[同期]タブに移動し、情報を入力してください。次のページで同期を確認するだけで、2秒後に完了します。これは簡単です。
本番サーバーの場合、私は個人的にマスター/スレーブレプリケーションを設定していますが、開発の場合、エラーや問題をレプリケートするために「ライブ」データが必要なときに同期します。これは、同期が必要なのは6〜12か月に1回だけだからです。ローカルでライブデータが必要な場合は、マスター/スレーブレプリケーションを設定します