debiancdn

AWS, Content Delivery Network and Debian

mysql5.1にupgradeしたらmysql5.0でつかえてたテーブルが使えなくなったので,結局dumpしなおした.

結論を言うと

mysql5.1にupgradeしたらmysql5.0でつかえてたテーブルが使えなくなったので,結局dumpしなおした.

ということなのでした.

なんかmysqlがうごかんので,show databasesをしてみたら"#mysql50"という表示が出る.

mysql> show databases
    -> ;
+-------------------------------------+
| Database                            |
+-------------------------------------+
| information_schema                  |
| #mysql50#donrails-trunk_development |
| #mysql50#donrails-trunk_production  |
| #mysql50#donrails-trunk_test        |
| mlabcms                             |
| mysql                               |
| snf_development                     |
| test                                |
+-------------------------------------+

どうやら,"#mysql50#"という表示は,

http://dev.mysql.com/doc/refman/5.1/ja/identifiers.html

MySQL 5.1.6より、データベース名とテーブル名内の特殊文字は項8.2.3. 「ファイル名への識別子のマッピング」で記述されているとおり、対応するファイルシステム名にコード化されています。旧バージョンのMySQLを使用していて、で特殊文字を含むデータベース名やテーブル名が新しいエンコーディングに対応するようアップデートされていない場合、#mysql50#が接頭に表示されます。そういった名称を検索、もしくはそれらを新しいエンコーディングに変換するには、そのセクションを参照してください。

ということで

特殊な接頭辞を使用する必要を無くすため、旧名をアップデートするには、mysqlcheckで再エンコードしてください。次のコマンドは全ての名前を新エンコーディングにアップデートします。

 shell> mysqlcheck --check-upgrade --all-databases

をかませばいいらしい.

出力

#mysql50#donrails-trunk_development.authors
error    : Table upgrade required. Please do "REPAIR TABLE `authors`" or dump/reload to fix it!

こんなのが出た.

–auto-repair

チェックされたテーブルが破壊されていた場合、自動的に修復します。必要な修復は全てのテーブルがチェックされた後に実行されます。

なるものがあるので試してみた.

Repairing tables
#mysql50#donrails-trunk_development.authors
note     : The storage engine for the table doesn't support repair

あれれ,

 show create table テーブル名;

で,ストレージエンジン確認.

 ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

とでてるな.InnoDBは対応してないのか?

AUTO_INCREMENTが悪さをしてるんだろうか.まあdumpして復帰.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中