共有ウェブホストにmysqlデータベースがあります。一部のテーブルはかなり大きく、夜間のダンププロセスが強制終了されていました。そこで、データベースですべてのテーブル名を照会し、それらを個別にダンプして、すべてを1つのファイルに連結するスクリプトを作成しました。
mysql -uusername -ppassword -hhostname dbname < <(echo 'SHOW TABLES') | xargs -I TableName sh -c 'nice -19 mysqldump --opt -uusername -ppassword -hhostname dbname TableName >> /path/to/dump.sql'
ビュー定義の1つ(私が理解しているように、MySQLのダンプファイルに特異なビュー作成ステートメントがあります)がエラーを引き起こすという問題があります
ERROR 1146 (42S02) at line 5182: Table 'dbname.vView' doesn't exist
ダンプファイルの行5182を調べたところ、ビューの作成を開始するのはこの最初の行です。
/*!50001 DROP TABLE `vView`*/;
/*!50001 DROP VIEW IF EXISTS `vView`*/;
/*!50001 CREATE ALGORITHM=UNDEFINED */
しかし、何らかの理由で、ダンプファイルの他のビューには
/*!50001 DROP TABLE IF EXISTS `vOtherView`*/;
そして、彼らは大丈夫に作成されます。
この質問に続いて、ダンプをインポートしようとmysql -f
しましたが、mysqlはエラーで停止しました。
ダンプファイルに適切にフォーマットされたビュー作成ステートメントを含めるにはどうすればよいですか(ダンプファイルの後処理を行う以外に)?または、どうすればmysqlを先に進めることができますか?