私はいくつかのリモートサーバーで作業しており、ssh トンネル (-l 3306:localhost:3306) を介して MySQL 呼び出しを転送する遅延にうんざりしていたので、リモート (ライブ)データベースは私のローカル開発マシンですが、ほとんどのオンラインリソースはあるssh対応サーバーから別のものであり、私が望んでいたものではなく、リモートデータベースを接続元のマシンに複製しました。
1788 次
1 に答える
2
リモート ポートを使用して開発マシンからローカルの MySQL ポートに接続します。デフォルトは 3306 です。
ssh server.address.com -R 3307:localhost:3306
次に、サーバーで、そこからリモートサーバーのデータベースにデフォルトでログインできます
mysql
指図。またはそこから、ローカルの dev データベースにログインし、
mysql --host=127.0.0.1 --port=3307
これにより、リモート サーバーからの 3307 ポートが、上記の ssh トンネルからローカルの 3306 ポートにトンネリングされます。
このため、mysqldump コマンドをローカルの mysql データベースに対して直接実行できます。
mysqldump --all-databases | mysql --host=127.0.0.1 --port=3307
最初の部分では、可能なすべてのデータベースをスタウトにダンプしますが、コマンドの後半では、それをローカル データベースに直接パイプします。
**参考までに、すべてのコマンドをできる限りわかりやすくするために、すべてのログイン情報を省略しましたが、できる限り各ビットを説明しようとしていますが、実際の操作では、直接使用します
ssh server.address.com -R 3307:localhost:3306 'mysqldump --all-databases -uroot | mysql --host=127.0.0.1 --port=3307 -uroot'
指図。
私にとって、これは開発用にライブ データベースをローカルに複製する最も簡単で迅速かつ最良の方法です。
于 2012-12-28T18:10:57.117 に答える