Bug #23550 tool for converting offline from old ISAM format
Submitted: 23 Oct 2006 11:49 Modified: 23 Oct 2006 21:16
Reporter: sean finney Email Updates:
Status: Verified Impact on me:
Category:MySQL Server: MyISAM storage engine Severity:S4 (Feature request)
Version:all OS:Any (all)
Assigned to: CPU Architecture:Any

[23 Oct 2006 11:49] sean finney

the ISAM format has been deprecated for quite some time now, and support has been completely removed in the latest mysql versions.  but you already know this :)

unfortunately, many people do not learn this until they have already upgraded their server due to a new release of their distribution, new security update, the boss tells them to, etc.  for all of these people, it would be of great help to provide some kind of offline ISAM conversion utility in the latest version of mysql.

i've read elsewhere that the only real difference between ISAM and myISAM is that the latter is a "platform independant" (endianness?  32-bit/64-bit?) format whereas the former isn't.

since this is going to affect a large number of debian users in the coming months (due to a pending new release) i'd be willing to spend a bit of time on this myself, if someone could point me to something more helpful than the header files :)

How to repeat:
upgrade to any recent mysql server

Suggested fix:
provide a utility.  in the meantime, i may provide debian users with instructions for how to convert it by installing an older version of mysql in a chroot jail to help them avoid totally farking their system trying to do an impossible downgrade.
[23 Oct 2006 12:15] Hartmut Holzgraefe
verified as a feature request, but i'd recommend that you post this to the mysql mailing list(s), too ...
[23 Oct 2006 14:47] Sergei Golubchik
You can try to create an utility from an old mysqld binary and a wrapper script to run it with --skip-networking --skip-privilege-tables --bootstrap

There will be no need for a chroot jail, as mysqld won't daemonize, won't create a unix socket, won't listen to network - it'll only accept SQL from stdin.

See how mysql_install_db does it.
[23 Oct 2006 21:16] sean finney
hi sergei, harmut,

i'll see about taking the issue to the lists, and in the meantime have sketched out a rough idea of how the 'chroot method' in the hopes that one of the debian bug reporters could give it a try and help lighten my workload a bit :)

wrt the binary wrapper: unfortunately that just won't work due to the logistics
of how debian distributes software.  unless i could compile the wrapper from
code in the latest tarball (or if it could be easily patched in), there isn't much that can be done to have a previous version of the binary installed.

thanks for looking at this,
[23 Oct 2006 21:16] sean finney
s/harmut/hartmut/, sorry :)
[10 Mar 9:48] Stefan Heisl
From what I understand, error #23550 suggests the want for an independent ISAM conversion device in the current model of MySQL. It appears that the old-fashioned ISAM structure has prompted issues for many customers who upgrade their servers due to new distribution variations or security updates. The proposed answer is to provide a utility that can operate offline ISAM conversion.

One possible solution is to create a tool from an historic mysqld binary and a shell script that runs with specific options. However, this may additionally not be a workable option for Debian customers due to software distribution logistics.

To tackle this problem, MySQL should consist of a standalone ISAM conversion tool inside the software that can be used to convert the out of date ISAM format to the more moderen MyISAM format. This tool need to be easy to use and platform-independent to make certain maximum compatibility with quite a number systems. Additionally, clear documentation and instructions ought to be provided to allow users to swap from ISAM to MyISAM without encountering any issues. Tutorial: https://andersenlab.com/industries/logistics