bash スクリプトを使用して、mysql サーバーにアクセスし、ローカルホスト内のすべてのテーブルとデータベースとそのデータを印刷するとします。
私が持っているスクリプトは次のようになります:
mysql -u ルート -p パスワード
スクリプトが実行されると、bash ではなく mysql シェルが開きます。では、mysql でコマンドを実行するにはどうすればよいでしょうか?
また、すべてのデータベース、テーブル、およびそのデータを印刷するには、どのコマンドを実行すればよいでしょうか?
編集: どのコマンドを使用すればよいかはわかりましたが、まだ疑問が残ります:
スクリプトに組み込む必要がありますが、mysqldump コマンドを入力すると、対話的にパスワードが求められます。
では、bash スクリプトでパスワードを処理するにはどうすればよいでしょうか?
答え1
見るmysqlダンプそれはあなたが望むことを行います。
使用例:
mysqldump -u root -p --all-databases
特定の状況に適したその他のスイッチについては、マニュアルを参照してください。
答え2
これを試して..
mysqldump -u root -p databasename > filename.sql
すべてのテーブルは filename.sql に保存されます。これはバックアップのようなものです。
テーブルをデータベースに戻して保存する場合は、このコマンドを使用します。
mysqldump -u root -p databasename < filename.sql
答え3
を実行するとman mysqldump
、次の出力が得られます。
--password[=パスワード], -p[パスワード]
サーバーに接続するときに使用するパスワード。短いオプション形式 (-p) を使用する場合、オプションとパスワードの間にスペースを入れることはできません。コマンド ラインで --password または -p オプションの後にパスワード値を省略すると、mysqldump はパスワードの入力を求めます。
コマンドラインでパスワードを指定することは安全ではないと考えられます。セクション 6.1.2.1「パスワード セキュリティに関するエンド ユーザー ガイドライン」を参照してください。オプション ファイルを使用すると、コマンドラインでパスワードを指定せずに済みます。
ルートパスワードが PASSWORD であると仮定して、次のコマンドを試してください。
mysqldump -u root -pPASSWORD --all-databases > database.sql