Mysqldumpを使用してデータベースをリモートサーバーにバックアップおよび復元するにはどうすればよいですか?
どちらもrootアクセスが可能です。私はこれを実行するためにPuTTYを使用しています。
これまで私は以下を試しました:
mysqldump -u root -p >z*x311a!@ masdagn_joom15 | mysql \ -u root -p g2154hE6-AsXP --Host=207.210.71.26 -C masdagn_joom15temp \g
しかしそれは拒否しました
ローカルパスワードは次のとおりです:> z * x311a!@
リモートパスワードは次のとおりです。g2154hE6-AsXP
この link は、mysqldumpを使用したバックアップと復元に関する情報を提供します。また、リモートサーバーの例もいくつか示します。
そのリンクからの重要なコマンドは次のとおりです。
バックアップ:
mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
復元:
mysql -u root -p[root_password] [database_name] < dumpfilename.sql
[local-server]# mysqldump -u root -prootpswd db | mysql \
-u root -ptmppassword --Host=remote-server -C db1
[注:ホストの前に2つ-(ハイフン)があります]
次のコマンドを実行する前に、まずリモートサーバー上にdb1データベースを作成する必要があることに注意してください。
mysqldump --user=username --password=pwd db_name | bzip2 -c > /backup_dir/db_name.sql.bz2
この部分をスクリプトに埋め込んだ後、FTPを使用して他の場所に転送できます。
復元するには、次のことができます
bzip2 -d db_name.sql.bz2
mysql --user=username --password=pwd db_name < db_name.sql
ローカルパスワードには>
文字が含まれています。これは、ほとんどのシェルで リダイレクト文字 として解釈されます。原則として、MySQLパスワードを英数字の[A-Za-z0-9]
に保つと、作業が大幅に楽になります。また、パスワードを公に投稿することを避ければ、システムの安全性が高まります。
これは、別のリモートサーバーへのクイックダンプのために私が行うことです... 2つのサーバー間にsshキーを設定したと仮定します
chmod 0755 dump-to-server.sh
)./dump-to-server.sh schema_name [email protected]
dump-to-server.sh
\#!/bin/bash
if [[ -z "$1" || -z "$2" ]]; then
echo "--------- usage ---------";
echo "./dump-to-server.sh schema_name [email protected]";
echo "";
else
mysqldump --opt "$1" | gzip -c | ssh "$2" "gunzip -c | mysql $1"
fi