Red Hat Bugzilla – Bug 159262
ISAM tables must first be converted before FC4 upgrade
Last modified: 2013-07-02 23:05:29 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.7) Gecko/20050504 Fedora/1.0.3-4 Firefox/1.0.3
Description of problem:
ISAM seems to no longer be supported in the build of MYSQL 4. MySQL will not me able to start. The following error message will be placed in /var/log/mysqld.log
050531 16:49:55 [ERROR] /usr/libexec/mysqld: Can't find file: 'host.MYI' (errno: 2)
050531 16:49:55 [ERROR] Fatal error: Can't open privilege tables: Can't find file: 'host.MYI' (errno: 2)
050531 16:49:55 mysqld ended
Version-Release number of selected component (if applicable):
Steps to Reproduce:
Actual Results: Mysql fails starting.
Expected Results: Mysql should start.
Run the following command on your system before upgrading to Fedora Core 4:
/usr/bin/mysql_convert_table_format mysql --user='' --password=''
I've been upgrading my system forever, the mysql database dates to July 2000 so
this may be a small percentage of users out there. Nevertheless, at least there
is a searchable report about it.
Same problem here: after upgrade to FC4, mysqld cannot start since its
permission tables wrere in the ISAM format.
A solution if you have already upgraded to FC4:
To convert the tables you need to temporarily downgrade MySQL to a version with
ISAM support. To do so, stop mysqld and all processes accessing it, then
download and install the RPM files from Fedora Core 3:
# rpm --nodeps --oldpackage -Uvh \
You may need to add "--nodeps" to override dependency problems (e.g., from
Now, as advised above, run:
$ /usr/bin/mysql_convert_table_format mysql --user='foo' --password='bar'
Repeat this, replacing the "mysql" argument with each of the ISAM databases you
have (look at /var/lib/mysql).
Finally, reinstall the Fedora Core 4 packages:
# yum install mysql mysql-server perl-DBD-MySQL
As you can see this procedure is rather violent, so it's a good idea to back up
your data first.
Apparently the MySQL folk decided that ISAM shouldn't be built by default anymore as of 4.x. I've re-
enabled it in our latest build (4.1.12-1 and up). It's probably still a good idea to reconstruct any old
tables you have, as it's not hard to read the handwriting on the wall ... but we'll hold the line for a little
A note for the archives: as of FC5 we will be using MySQL 5.0, and the ISAM code
isn't there at all any more in 5.0. Better get those old tables updated.