さくらのレンタルサーバーで、mysqlの肥大化したibdata1ファイルを小さくするための、mysqlフルダンプのテスト中に起きたエラーについて。
https://teratail.com/questions/260821 の延長質問的、になります。
さくらVPSで別環境があったので、(現在稼働してないことはないが、データが置いてあるだけのような、解約していないもの)
そこでフルダンプ、リストアから、ibdata1のサイズがちゃんと小さくなったか、の確認テストをしています。
うまくいったら本番環境で試したいと思っています。
まず、
1 appacheなどのサービスを止める
2 バックアップをとる。フルダンプ成功 all_db.sqlという名前で、自分のローカルPCにも保存しました。
3 mysqlを止める
3 ibdata1やib_logfile0やib_logfile1などを削除します(自分は、mvコマンドで別ディレクトリに移して、削除と同等扱いとしました)。
4 mysql稼働
5 再度流し込もうとするとエラー!!
エラーメッセージは
mysql
1ERROR 1813 (HY000) at line 106: Tablespace '`mysql`.`engine_cost`' exists.
となりました。 どこの106だ?と思い、そのフルダンプファイルだと気づいて
フルダンプしてローカル保存したall_db.sqlファイルを開いて
106行近辺を見ると
mysql
1103 DROP TABLE IF EXISTS `engine_cost`; 2104 /*!40101 SET @saved_cs_client = @@character_set_client */; 3105 /*!40101 SET character_set_client = utf8 */; 4106 CREATE TABLE `engine_cost` ( 5107 `engine_name` varchar(64) NOT NULL, 6108 `device_type` int(11) NOT NULL, 7109 `cost_name` varchar(64) NOT NULL,
続く...
103行目からの
engine_costがもしあったら削除をして、
106行目でcreate 作るということだと思うのですが、
エラー内容は、無いからエラー、でなくすでにあるからエラーです、ということだと思うのですが、
少し調べると、手動で消しにいけばよいともあったのですが、
show tables などしてみても、engine_cost というものはないですし、
どうすればここのエラーに引っかからずに進めるか、
テスト環境ですのでゆっくり解明していけばよいのですが、
よろしくお願い致します・・。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/13 13:59
2020/05/13 14:00