質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

2042閲覧

さくらのレンタルサーバーで、mysqlの肥大化したibdata1ファイルを小さくするための、mysqlフルダンプのテスト中に起きたエラーについて。

gugupoo

総合スコア31

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2020/05/13 07:38

さくらのレンタルサーバーで、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 というものはないですし、

どうすればここのエラーに引っかからずに進めるか、
テスト環境ですのでゆっくり解明していけばよいのですが、
よろしくお願い致します・・。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

投稿2020/05/13 07:57

x98000

総合スコア1096

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gugupoo

2020/05/13 13:59

そちらで大丈夫でした! 検索で最初自分も見たサイトでしたが、なんとなくの印象でページを熟読して違うかなと簡単に決めつけて他へ行っていましたが、再度読ませて頂いて、そちらの通りでした!有難うございました! 結局、`engine_cost`どころか、 拡張子 .ibdとつくものに関しては全て(おそらく全て)、上記エラーが出たので、その都度エラーの行も106行目、150行目、180行目と、どんどん出現したので、最後別のデータベースでもそのエラーが出たので、今回テスト環境なので、そちらのデータベース内は、rm *.ibd で全て消してやったらリストア成功でした! 一部、.ibdファイルをしっかり消したのに、 上記のようで、~~~~does'nt exists.  のパターンでエラーが出ました。 こちらは最初のフルダンプファイルをそこまで行くと、 フルダンプファイルは DROP TABLE CREATE TABLE で繰り返しかかれていましたが、 does'nt exists.   エラー時は、CREATE TABLEとセットと思われる DROP TABLE がなかったので、 vi でDROP TABLE と書き足してやりました。 (言っていることが無茶苦茶と思われますが、一応自分の回答の足跡という意味で書かせて頂きました・・) 有難うございました!
gugupoo

2020/05/13 14:00

上記ですと 103行目に DROP TABLE 106行目に CREATE TABLE とありますが、 まず .ibd ファイルを消して それでもエラーが出る箇所はファイルを見に行ってやると DROP TABLE記載がなかったので、 自分で記載してやった具合です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問