リモートサーバーからCLI経由でmysql import sql
-
05-07-2019 - |
質問
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 を使用して、ファイルにダウンロードするか、パイプで入力します。
所属していません StackOverflow