回答:
ビューをダンプするための特定のオプションはありません。
以下を試すことができます。
mysqldump -h... -u... -p... --all-databases --routines --triggers --no-data > /root/MySQLDBSchema.sql
grep "CREATE ALGORITHM" /root/MySQLDBSchema.sql
ビューを表示できるはずです。これは、データベースをダンプすると、ビューにデータベースが付属することを示しています。
ビューのみを取得するために試すことができるもう1つのスタントは次のとおりです。
mysql -uroot -prootpass AN -e"select concat('SHOW CREATE VIEW ',table_schema,'.',table_name,';') from information_schema.views" | sed 's/;/\\G/g' | mysql --uroot -prootpass > /root/MySQLDBViews.sql
試してみる !!!
--all-databases
する代わりに、必要なデータベースを指定します。
これに対する最良の答えは、おそらくこれを少し修正 したolliiiverによるものでしょう。具体的には、テーブルをいじる必要なしに、システム内のすべてのビューについて、テーブルのドロップクエリとビューの作成または置換クエリをエクスポートします。テーブルを削除するクエリはしばしば重要です。mysqldumpは、すべてのビューを独自の--ignore-tableパラメータに含めない限り、ビューをテーブルとして再作成することを好むため、迷惑になります。INFORMATION_SCHEMAを使用します。
mysql --skip-column-names --batch \
-e "SELECT CONCAT('DROP TABLE IF EXISTS ', TABLE_SCHEMA, '.', TABLE_NAME, \
'; CREATE OR REPLACE VIEW ', TABLE_SCHEMA, '.', TABLE_NAME, ' AS ', \
VIEW_DEFINITION, '; ') AS q FROM INFORMATION_SCHEMA.VIEWS"
このようなものをシェルスクリプトに変換する場合は、-defaults-extra-file = CREDSFILENAMEパラメータを使用することをお勧めします。これにより、スクリプトでuser / passを指定する必要がなくなります。
資格情報ファイルは次のようになります。
[client]
username=YourUsernameHere
password=YourPasswordHere