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 :)