Friday, January 27, 2006

Upgrading to MySQL 4 from MySQL 3.23

A friend of mine recently needed to upgrade to MySQL 4 (I told him to upgrade to MySQL 5 but he didn't want to).

I told him to back up and files and warned him of what issues he might run into based on my "Upgrade to MySQL 5 post."

After he tried, he ran into a few additional problems. These problems, their fix (and his comments) are mentioned below for reference.

(in mysql.log) [ERROR] Fatal error: Can't change to run as user 'mysql' ; Please check that the user exists!

There was no system user 'mysql', which was apparently expected by the new version. I had to add that user ("useradd mysql").

(in mysql.log) [ERROR] Can't start server : Bind on unix socket: Permission denied

All of the permissions on /var/lib/mysql were set to 27:27, so I had to change those permissions ("chown mysql:mysql /var/lib/mysql -R")

for some reason the system didn't have a "root" mysql user, which is expected by mysql_fix_privilege_tables.

The script is easily edited accordingly.

(in error_log) PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php4/' - cannot open shared object file: No such file or directory in Unknown on line 0

I had forgotten to check this (per your instructions). Thank goodness I did copy that file ( before installing (THANKS for informing me about this in advance). I moved it back to /usr/lib/mysql then restarted apache, which did the trick.

Let me know if you ran into an issue while upgrading that I haven't documented here.


Also see:
Convincing a DBA to upgrade
Upgrading to MySQL 5
Transferring databases from MySQL 3.XX to MySQL 5
MySQL 5 Tuning and Optimization
mysql_connect(): Call to undefined function

No comments: