MySQLデータを同期する方法
MySQLデータを同期する方法
ホスト A と B (Linux システム) があるとします。ホスト A の IP は 1.2.3.4 (もちろん、動的にすることもできます)、ホスト B の IP は 5.6.7.8 です。両方のホストに PHP Mysql がインストールされており、現在ホスト A 上のデータを操作しています。別のホスト B がデータを A と同期したい場合、どうすればよいでしょうか?
よし、それではやってみよう。
まず、2 つのホスト間でデータを同期したい場合、1 つの方法は、ホスト A がホスト B にデータを送信することです。もう 1 つの方法は、ホスト B がホスト A からデータを取得することです。は動的である (想定されている) ため、ホスト A からホスト B にデータを送信する必要があります。
ホスト B に MySQL アカウントを作成します。
# GRANT ALL ON test.* TO user@% IDENTIFIED BY "password"; // 任意のマシンからホスト B 上のテスト データベースにアクセスできるユーザー user を作成します。
ここでエラーが表示された場合は、まず % を IP に変更し、次に phpMyAdmin を使用して IP を % に変更します。テストが正しければ、php プログラムを作成できます。
<
$link=mysql_pconnect("localhost","user","password");
mysql_pconnect("localhost","user","password");このマシン (ホスト A) のデータベースに接続します。
mysql_select_db("test"); //データベースの選択 test
$re=mysql_query("select * from table order by id desc"); 🎜> $num=mysql_numrows($re);
if (!empty($num)) {
$id=mysql_result($re,0,"id");ローカルテーブル
}
mysql_close($link); // ローカルデータベースへの接続を閉じます
$link=mysql_pconnect("5.6.7.8","test") ," test");
mysql_pconnect("5.6.7.8","test","test"); //ホスト B のデータベースに接続します
mysql_select_db("test"); 、このデータベースはホスト A 上のテスト データベースの構造と同じである必要があります。
$re=mysql_query("select * from table order by id desc");
$num=mysql_numrows($re);
if (!empty($num)) {
$remote_id =mysql_result($re,0,"id"); //ホスト Btable テーブルの最大 ID を取得します
}
if ($id>$remote_id) {
$result_id=$ id- $remote_id; //ホスト A のテーブルの最大 ID がホスト B のテーブルの最大 ID より大きい場合、2 つの
} のデータが異なることを意味します
mysql_close($link); // ホスト B のデータベース接続を閉じます
$link=mysql_pconnect("localhost","user","password");
mysql_pconnect("localhost"," user","password");
mysql_select_db("test");
if (empty($result_id)) $result_id=0;
if (empty($remote_id)) $remote_id =0; //テーブルの最大 ID が空の場合 (データが存在しない場合)、0 を待ちます
$re=mysql_query("select * from table limit $remote_id,$result_id "); //ホスト A のテーブル table とホスト B のテーブルの異なるデータを取得
$num=mysql_numrows($re);
if (!empty($num)) {
for ($i=0;$i$test[$i]=mysql_result($re,$i,"test"); //異なるデータを配列に入れる
}
}
mysql_close ($link); //ホスト A のデータベース接続を閉じる
$link=mysql_pconnect("5.6.7.8","user","password") );
mysql_pconnect("5.6. 7.8","ユーザー","パスワード");
for ($j=0;$j
mysql_query("insert into table (test) names('$test[$j ]')");
}
mysql_close($link); //ホスト B のデータベース接続を閉じます
?>
At今回は、ホスト A とホスト B のデータ同期が最初に実現されましたが、このプログラムを毎回手動でアクティブにする必要があります。これをスクリプトとして使用し、crontab に入れて自動的に実行する方法はありますか。指定された時間?
phpをインストールすると、通常はインストールしたphpの/binディレクトリ下にphpという実行ファイルが生成されますが、下位バージョンには存在しないようです。ファイルをアップグレードする必要があります。
#php -q test.php
php は元々 Web アプリケーションで使用されていたため、HTML ヘッダーを送信しますが、ここでは php をシェル スクリプトとして使用します﹐" -q"
最後に/etc/crontab内のファイルを編集し、次の文を追加します。
0 0 * * * root /home/httpd/html/test //毎晩0:00に/home/httpd/html/testファイルを実行(具体的な使用方法はcron関連情報をご確認ください) )
OK、Mysql データの同期はこれでほぼ完了しました。まだ興味がある場合は、編集と削除を同期するためのより良い方法を考えることができます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

データ統合の簡素化:AmazonrdsmysqlとRedshiftのゼロETL統合効率的なデータ統合は、データ駆動型組織の中心にあります。従来のETL(抽出、変換、負荷)プロセスは、特にデータベース(AmazonrdsmysQlなど)をデータウェアハウス(Redshiftなど)と統合する場合、複雑で時間がかかります。ただし、AWSは、この状況を完全に変えたゼロETL統合ソリューションを提供し、RDSMYSQLからRedshiftへのデータ移行のための簡略化されたほぼリアルタイムソリューションを提供します。この記事では、RDSMysQl Zero ETLのRedshiftとの統合に飛び込み、それがどのように機能するか、それがデータエンジニアと開発者にもたらす利点を説明します。

1.正しいインデックスを使用して、データの量を削減してデータ検索をスピードアップしました。テーブルの列を複数回検索する場合は、その列のインデックスを作成します。あなたまたはあなたのアプリが基準に従って複数の列からのデータが必要な場合、複合インデックス2を作成します2。選択した列のみを避けます。必要な列のすべてを選択すると、より多くのサーバーメモリを使用する場合にのみサーバーが遅くなり、たとえばテーブルにはcreated_atやupdated_atやupdated_atなどの列が含まれます。

MySQLは、複数の同時接続を処理し、マルチスレッド/マルチプロセスを使用して、各クライアントのリクエストに独立した実行環境を割り当てて、邪魔されないことを確認できます。ただし、同時接続の数は、システムリソース、MySQL構成、クエリパフォーマンス、ストレージエンジン、ネットワーク環境の影響を受けます。最適化では、コードレベル(効率的なSQLの書き込み)、構成レベル(MAX_Connectionの調整)、ハードウェアレベル(サーバー構成の改善)などの多くの要因を考慮する必要があります。

MySQLがテーブル構造を変更すると、メタデータロックが通常使用され、テーブルがロックされる可能性があります。ロックの影響を減らすために、次の測定値をとることができます。1。オンラインDDLでテーブルを使用できます。 2。バッチで複雑な変更を実行します。 3.小規模またはオフピーク期間中に操作します。 4. PT-OSCツールを使用して、より細かい制御を実現します。

ルートとしてMySQLにログインできない主な理由は、許可の問題、構成ファイルエラー、一貫性のないパスワード、ソケットファイルの問題、またはファイアウォール傍受です。解決策には、構成ファイルのBind-Addressパラメーターが正しく構成されているかどうかを確認します。ルートユーザー許可が変更されているか削除されてリセットされているかを確認します。ケースや特殊文字を含むパスワードが正確であることを確認します。ソケットファイルの許可設定とパスを確認します。ファイアウォールがMySQLサーバーへの接続をブロックすることを確認します。

MySQLはAndroidで直接実行できませんが、次の方法を使用して間接的に実装できます。Androidシステムに構築されたLightWeight Database SQLiteを使用して、別のサーバーを必要とせず、モバイルデバイスアプリケーションに非常に適したリソース使用量が少ない。 MySQLサーバーにリモートで接続し、データの読み取りと書き込みのためにネットワークを介してリモートサーバー上のMySQLデータベースに接続しますが、強力なネットワーク依存関係、セキュリティの問題、サーバーコストなどの短所があります。

MySQLはJSONデータを返すことができます。 json_extract関数はフィールド値を抽出します。複雑なクエリについては、Where句を使用してJSONデータをフィルタリングすることを検討できますが、そのパフォーマンスへの影響に注意してください。 JSONに対するMySQLのサポートは絶えず増加しており、最新バージョンと機能に注意を払うことをお勧めします。

はい、MySQLはWindows 7にインストールできます。MicrosoftはWindows 7のサポートを停止しましたが、MySQLは引き続き互換性があります。ただし、インストールプロセス中に次のポイントに注意する必要があります。WindowsのMySQLインストーラーをダウンロードしてください。 MySQL(コミュニティまたはエンタープライズ)の適切なバージョンを選択します。インストールプロセス中に適切なインストールディレクトリと文字セットを選択します。ルートユーザーパスワードを設定し、適切に保ちます。テストのためにデータベースに接続します。 Windows 7の互換性とセキュリティの問題に注意してください。サポートされているオペレーティングシステムにアップグレードすることをお勧めします。
