質問

iは、cliを介してsqlファイルをインポートする方法を知っています:

mysql -u USER -p DBNAME < dump.sql

ただし、dump.sqlファイルがローカルの場合です。リモートサーバー上のファイルをどのように使用できますか?

役に立ちましたか?

解決

リモートサーバーへのネットワークアクセスを指定しませんでした。

リモートサーバーへのSSHアクセスがあると仮定すると、リモートmysqldumpの結果をmysqlコマンドにパイプできます。これをテストしたところ、正常に動作します。

ssh remote.com "mysqldump remotedb" | mysql localdb

ユーザー、パスワード、ホストなどを .my.cnf に入れているので、それらを常に入力しているわけではありません。あなたのbash_history!ただし、必要に応じて、両端に -u -p -h を簡単に追加できます。

ssh remote.com "mysqldump -u remoteuser -p'remotepass' remotedb" | mysql -u localuser -p'localpass' localdb

最後に、 gzip をパイプ処理して、ネットワーク経由でデータを圧縮できます:

ssh remote.com "mysqldump remotedb | gzip" | gzip -d | mysql localdb

他のヒント

ローカルVMの空き容量が非常に少ないため、これに追加すると思いましたが、.sqlファイルが既にリモートサーバーに存在する場合は実行できます。

ssh <ip-address> "cat /path/to/db.sql" | mysql -u <user> -p<password> <dbname>

wget を使用して、ファイルにダウンロードするか、パイプで入力します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top