답변:
뷰 덤프에 대한 특정 옵션은 없습니다.
다음을 시도 할 수 있습니다.
mysqldump -h... -u... -p... --all-databases --routines --triggers --no-data > /root/MySQLDBSchema.sql
grep "CREATE ALGORITHM" /root/MySQLDBSchema.sql
뷰를 볼 수 있어야합니다. 이는 데이터베이스를 덤프 할 때 뷰가 함께 제공됨을 나타냅니다.
보기 만하기 위해 시도 할 수있는 또 다른 묘기는 다음과 같습니다.
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 매개 변수를 사용하는 것이 좋습니다. 따라서 스크립트에서 사용자 / 패스를 지정할 필요가 없습니다.
신임 정보 파일은 다음과 같습니다.
[client]
username=YourUsernameHere
password=YourPasswordHere