bash を使用して MySQL サーバーのローカルホストにアクセスする

bash を使用して MySQL サーバーのローカルホストにアクセスする

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

関連情報