Jump to content

Recommended Posts

Posted (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 by hturner1
For some reason the SQL statement in the error was remove.
Posted (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.

  1. Logged into the MySQL instance (I was able to do this in phpMyAdmin).
  2. Switched to the database for the forum:
    use <Your_DB_Name_Here>;
  3. Check the engine being used on the tables:
    show table status;
  4. Since all of my tables showed an engine of myISAM, I obtained a list of all the table names with:
    show tables;
  5. 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;
  6. 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.
  7. 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 by hturner1
Syntax highlighting
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...