A melhor resposta para isso é, provavelmente, este
pelo olliiiver que eu ligeiramente modificado. Exporta especificamente uma consulta de tabela suspensa e uma consulta de criação ou substituição de visualização para todas as visualizações no sistema, sem precisar mexer em nenhuma tabela. A consulta da tabela suspensa geralmente é importante, pois o mysqldump aparentemente gosta de recriar visualizações como tabelas, a menos que você inclua todas as visualizações em seu próprio parâmetro --ignore-table, o que seria irritante. Ele usa o 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"
Se você deseja transformar algo assim em um script de shell, também recomendo usar o parâmetro --defaults-extra-file = CREDSFILENAME, para que você não precise especificar user / pass no script.
O arquivo de credenciais fica assim:
[client]
username=YourUsernameHere
password=YourPasswordHere