Joomla and Read-Only Tables

I’ve just wrapped up a brain-splitting weekend of migrating a Joomla installation from one server to another. It sounded easy – shoot, it SOUNDS easy if you’re just getting started – and yet when I brought the site up, I had a problem I hadn’t anticipated. Once you’ve got your MySQL data moved over, you need to watch out for those read only tables. The front end of your site may look great but you may not be able to log in to your admin control panel!

The site was a Joomla 1.0.11 and I’d kept a copy of the install files to make sure I could upgrade or repair an installation.  The data was in MySQL 5.  From that point, it’s relatively easy, as these directions describe.  No sweat.  I was moving from Debian Sarge to Debian Etch and was using the Debian package for MySQL Navigator to manage the tables.  I restarted my Apache server to point to the new site and the site popped up – almost as expected!  I didn’t have any of the dreaded Joomla database error pages (see entry 2) at least.  A few more tweaks and I was in business:  I could navigate and log in on the front end.

Read Only Tables

But when I tried to get into the admin panel, I received repeated errors that I was using the “incorrect username, password.”  I double checked my file level permissions (chmod) and ownership (chown) and everything seemed normal (I checked against the old server).  One hint I had was that I was getting an error (since lost to the ether) that I was unable to write session information as I was trying to log in to the admin panel.  It wasn’t until I tried to export a table from the Etch server that I received the second hint!  “Table is Read Only” and the Xport failed.  I read more posts and tips (like this one and this one) than I care to relate.  In any event, the gist was:

– the read-only relates to your MySQL internal restrictions (LOCK TABLES, UNLOCK TABLES) and not to your file level permissions, so you can CHMOD ’til the cows come home and not make a difference;

– there is someway to cause the tables to revert back to being read-write, and the recommendations on how to do this were varied (including doing a backup (?), the steps for which I tried without success).

In any event, I was unable to get the tables to revert and ended up going manual:  installing a newer version of Joomla (1.0.14RC1 stable) and then manually copying over the text that I was going to reuse.  Since this site is for an annual event for which I volunteer, I would have had to recast much of the content anyway (he says now that he has no option) but  it would have been easier to just unpublish content already in Joomla!  I’ve kept the other site running in the background (on a 3d level domain for easy access!) because I want to return to this problem and figure out how to fix it.

Access Denied

If you’re on Debian and migrate Joomla and get this message:

“Access denied for user debian-sys-maint@localhost”

try this.  It may help you although I’ve had the error apparently disappear and then reappear on boot.  So I’ll have to figure out if this has really solved it or not.  As for problems if access for root@localhost is denied, I found that this took care of the “old password” problem:

SET PASSWORD for ‘root’@’localhost’ = OLD_PASSWORD(‘whatever_your_password_is’);