Mysqlデータベースダンプがあります。シェルスクリプトを介して外部LinuxシステムにHudsonと一緒にインストールしたいと思います。
Mysqlスクリプトを入手して他のコンピュータのデータベースで実行するにはどうすればよいですか?他のコンピュータに手動でアクセスするときにsftpを使用してファイルを転送し、sshを使用できることを知っていますが、それを簡単なシェルスクリプトで自動化するにはどうすればよいですか?
答え1
$ mysql -p$pass -u$user -h$otherhost $db < dumpfile
これは、生のSQL文を含むdumpfile
テキストからのものと見なされます。mysqldump
重要なのは、-p
パスワードとパスワードの間にスペースがあってはいけないということです。 (自動ログインを想定しています-p
。)パスワードがすぐに従わない場合、mysql
このオプションは対話形式でパスワードを要求し、別のパスワード引数をデータベース名として処理する必要があると解釈されます。
これを行うには、$user
リモートユーザーとしてログインし、テーブルを削除し、テーブルを作成し、テーブルに行を挿入する権限が必要です。 MySQLはユーザーに対して別々のリモートおよびローカル権限を維持するため、これは欠けやすいトラップです。リモートユーザーにあまりにも多くの権限を付与するとセキュリティ上のリスクがあるため、SSL(--ssl*
オプション)と組み合わせることをお勧めしますmysql
。それ以外の場合は、リモートユーザーがこのような操作を実行できるかどうかわかりません。