web-dev-qa-db-ja.com

MySQLのデータベース内のすべてのテーブルに対してDDLを生成する方法

MySQLのデータベース内のすべてのテーブルのDDLを一度に生成する方法。次のクエリがテーブルのDDLを出力することを知っています。しかし、データベースに何百ものテーブルがあるので、すべてのテーブルのDDLを一度に欲しいです。

show create table <database name>.<table name>;

例えば:

show create table projectdb.customer_details; 

上記のクエリでは、customer_detailsテーブル。

Windows OS上でMySQLワークベンチでMySQLを使用しています。

42
Sumit Gupta

Mysqldumpコマンドラインユーティリティを使用して実行できます。

mysqldump -d -u <username> -p<password> -h <hostname> <dbname>

-dオプションは「データなし」を意味します。

73
AJ.

上記の@tftdiasは、部分的に正しいコメントを作成しました。

問題は、パスワードとして-pと「pps」の間のスペースでした。コマンドラインでパスワードを完全にフリーテキスト化できます。一般的なセキュリティルールとして、すべきではありません。 Linuxでは、適切な構成を使用して、コマンドラインの最初の文字の前にスペース( "")を追加できます。その行は「履歴」に入りません。パスワードをクリアテキストで入力する(しないでください!)ときは、パスワードが表示される履歴に含まれないように、少なくとも最初にスペースを入れることをお勧めします。

0
John Toups