バージョンアップに対応するのはウェブ屋の逃れられない対応であり、言語やDBはバージョンアップに対応できないと動作すら危うくなる危険もあります。今回はMySQLバージョン4.x以前からMySQLバージョン5系に移行したときのエクスポートに関するトラブル対応についてご紹介。
SQLファイルをエクスポート
MySQLのバージョンアップにより4.x以前の古い環境から5.x系の新しい環境へ移行するという事態になり、まずは通常通り旧環境からSQLファイルをエクスポート。そのSQLファイルを新しい環境へインポートしようとしたところ、エラーが発生。すぐに完了できると思っていた移行作業に不安が生じました。
「TYPE = MyISAM」という記述が原因
エラー内容を確認したところ、どうやら「TYPE = MyISAM という記述は間違っているよ」という内容。MySQLバージョン4.x以前からエクスポートしたSQLファイルを確認したところ、下記のような記述になっていました。
CREATE TABLE IF NOT EXISTS `table_name` ( `id` int(11) NOT NULL auto_increment, `name` text NOT NULL, `category` text NOT NULL, `tag` text NOT NULL, `deleted` int(2) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1000;
この最終行に記述されている「TYPE = MyISAM」はMySQLのバージョン4.0.2以前の書き方で、現在は非推奨となっている様子。このまま新しいバージョンのMySQLにインポートしようとすると、エラーが発生してインポートできません。
「ENGINE=MyISAM」で解決
この「TYPE = MyISAM」を「ENGINE=MyISAM」と書き換えることで、正常にインポートできるようになります。変更後のSQLは下記の通り。
CREATE TABLE IF NOT EXISTS `table_name` ( `id` int(11) NOT NULL auto_increment, `name` text NOT NULL, `category` text NOT NULL, `tag` text NOT NULL, `deleted` int(2) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1000;
以上、MySQLバージョン4.x以前からエクスポートしたSQLファイルのトラブル解決法でした。