リモートマシンのmysqlインストールからSSH経由でローカルマシンmysqlにデータベース全体をコピーする必要があります。SSH経由でmysqlデータベースを取得する
私はSSHと、ローカルとリモートの両方のMYSQL管理者とパスワードを知っています。
これは十分な情報ですか、どのように行われますか?
リモートマシンのmysqlインストールからSSH経由でローカルマシンmysqlにデータベース全体をコピーする必要があります。SSH経由でmysqlデータベースを取得する
私はSSHと、ローカルとリモートの両方のMYSQL管理者とパスワードを知っています。
これは十分な情報ですか、どのように行われますか?
ここ読んで試してみてください。http://www.cyberciti.biz/tips/howto-copy-mysql-database-remote-server.htmlから修正
- 私はSQLファイルの拡張子として.sql
を使用することを好むので修正:
を は次のように通常あなたは、データベースのコピーやバックアップを作成するためのmysqldumpを実行します:
$ mysqldumpを-uユーザー-pのDB名> DB-name.sql
コピーDB-name.outファイルリモートMySQLサーバへのSFTP/SSHを使用して:
$ SCPのDB-name.sql [email protected]:/バックアップ
は、リモートサーバー(SSH経由でログイン)でデータベースを復元します。
$をmysqlの-uユーザー-p DB-名<デシベル-name.sql
基本的にあなたが再生成するmysql
にパイプ、その後、ローカルマシンにコピーし、データベースのダンプを生成するために、内容をmysqldump
を使用しますDB。
mysqldump
を使用するのではなく、リモートマシン上でMySQLサービスをシャットダウンできる場合のみ、DBファイル自体をコピーできます。
私はあなたが正しい答えを含むためにこの答えを編集する必要があると思う、リンクが死んで行く入れ墨 –
@MildFuzz Ok。とにかく「あるサーバから別のサーバにmysqlデータベースをコピーする」というGoogleの検索結果の最初の結果だった。 –
XtrabackupツールをPerconaでお勧めします。これは、SSH経由でホットコピーデータをサポートしており、優れたドキュメントを持っています。 mysqldumpを使用するのとは異なり、これは、ユーザ権限、トリガ、レプリケーションなどを含むMySQLインスタンスのすべての要素をコピーします。リモートマシン
をデータベースを復元するデータベースのバックアップを作成しますあなたのローカルMySQLのリモートDBは、pipes:
ssh mysql-server "mysqldump --all-databases --quote-names --opt --hex-blob --add-drop-database" | mysql
mysql.users
にユーザーに関する注意を払う必要があります
、ローカルホストとリモートホスト上のmysqldumpとMySQLのユーザとパスワードを入力しないようにするには、ファイル~/.my.cnf
を作成することができます。
[mysql]
user = dba
password = foobar
[mysqldump]
user = dba
password = foobar
参照してください。ローカルマシンにリモートサーバからhttp://dev.mysql.com/doc/refman/5.1/en/option-files.html
ssh {ssh.user}@{remote_host} \
'mysqldump -u {remote_dbuser} --password={remote_dbpassword}
{remote_dbname} | bzip2 -c' \ | bunzip2 -dc | mysql -u {local_dbuser}
--password={local_dbpassword} -D {local_dbname}
私の唯一の問題は、sshがbzip2ストリーム上でgzipを実行していることです。おそらく、 '-C'フラグをsshにドロップする方が良いでしょう。 –
なぜパスワードをコマンドライン引数として渡すのですか?そのマシンでpsを実行できる人なら、パスワードを見ることができます。 –
データベースをローカルにコピーする方法は知っていますか? –
私はあなたが見つけたと確信しています... –