hturner1 Posted January 27 Posted January 27 (edited) Greetings. I've been working to run a manual upgrade as the one through my AdminCP kept failing but not providing any sort of rationale as to why (the AdminCP would simply go back to the main dashboard or I'd get a random string of what looked like JSON on the screen). That said, the manual install isn't working either. I get all the way to the 'Upgrade' stage and it almost immediately fails with the following error information. Quote Specified key was too long; max key length is 1000 bytes /path/to/files/redacted/forum/system/Db/Db.php::2187 ALTER TABLE `core_attachments_map` ADD KEY `map_lookup` (`location_key`(250),`id1`,`id2`) Up in the top right of the above error message is the 4 digit value '1071' if that helps any as well. Below the error are a 'Retry?' and a 'Continue' button. I've tried both but the error keeps popping up. Any help/suggestions/troubleshooting steps would be appreciated. I did check the MySQL database through Cpanel and it said the DB was ok, FWIW. Thanks in advance! Edited January 27 by hturner1 For some reason the SQL statement in the error was remove.
Randy Calvert Posted January 27 Posted January 27 Check to make sure that table (and all IPB tables honestly) are Innodb instead of myISAM. hturner1 1
teraßyte Posted January 27 Posted January 27 Make sure the ROW_FORMAT for InnoDB tables is also DYNAMIC rather than COMPACT. Jim M, hturner1 and Maxxius 2 1
hturner1 Posted January 27 Author Posted January 27 (edited) 20 hours ago, Randy Calvert said: Check to make sure that table (and all IPB tables honestly) are Innodb instead of myISAM. Thank you!!! This was it. Sure enough virtually all the tables were MyISAM. Converted them to InnoDB and the installation completed. Just in case anyone else comes across this issue, here's what I did. Logged into the MySQL instance (I was able to do this in phpMyAdmin). Switched to the database for the forum: use <Your_DB_Name_Here>; Check the engine being used on the tables: show table status; Since all of my tables showed an engine of myISAM, I obtained a list of all the table names with: show tables; From here those table names were put into a txt file, one table name per line, called "tables" and with the sed tool, I created alter statements for each table name: sed -i 's/\(.*\)/ALTER TABLE `\1` ENGINE=InnoDB\;/' tables; From here, the tables file would have a bunch of ALTER statements that were run. It took a minute but once it was done, I double checked with `show table status;` again to see that the engine was changed to InnoDB. Continued the installation process and things were successful! I'm sure there is probably a WAY more efficient SQL way to do all the above but I'm not a SQL wizard by any means. Hope this can help others though. Edited January 27 by hturner1 Syntax highlighting Telemacus2 1
Randy Calvert Posted January 28 Posted January 28 I'm glad you were able to get the upgrade completed!
Recommended Posts