0

私はいくつかのリモートサーバーで作業しており、ssh トンネル (-l 3306:localhost:3306) を介して MySQL 呼び出しを転送する遅延にうんざりしていたので、リモート (ライブ)データベースは私のローカル開発マシンですが、ほとんどのオンラインリソースはあるssh対応サーバーから別のものであり、私が望んでいたものではなく、リモートデータベースを接続元のマシンに複製しました。

4

1 に答える 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 に答える