Moodle upgrading error - unsupported_db_storage_engine

Moodle upgrading error - unsupported_db_storage_engine

by Jeff Michael -
Number of replies: 4

Hello,


I am trying to upgrade moodle 2,4 to

Moodle 3.0.2+ (Build: 20160114)

on a linux. I completed all  the steps but when creating tables, i got this error

moodle error

unsupported_db_strorage_engine and it says that i have to solve this problem to continue.


Please help


Average of ratings: -
In reply to Jeff Michael

Re: Moodle upgrading error - unsupported_db_storage_engine

by Ken Task -
Picture of Particularly helpful Moodlers

I trust you have made a backup of your DB.  If not, make a backup of what you have then onto the next item below.

From the mysql> type: 'show engines' to see if you have innoDB support.  If you do NOT, do NOT do the steps below.

If the config.php file has DB user, DB name, and DB password in it AND you have the 3.0.highest code from the command line cd into /path/to/moodle/code/admin/cli/

And see if there is a mysql_engine.php script therein.  If it's there run the script as root user:

php mysql_engine.php

It will show you how to execute the script that will convert the ENGINE in the DB to required InnoDB.

'spirit of sharing', Ken


In reply to Jeff Michael

Re: Moodle upgrading error - unsupported_db_storage_engine

by Rick Jerz -
Picture of Particularly helpful Moodlers Picture of Testers

Instead of upgrading, consider installing a brand new moodle 3.0.2+ on your server first to see how it behaves.

In reply to Rick Jerz

Re: Moodle upgrading error - unsupported_db_storage_engine

by Jeff Michael -

It worked fine for a brand new moodle 3.0 but not with upgrading

In reply to Jeff Michael

Re: Moodle upgrading error - unsupported_db_storage_engine

by Ken Task -
Picture of Particularly helpful Moodlers

The script didn't work?   It's independent of apache or other things as long as the DB information in the config.php file is correct, it should work ... it's just php talking to MySQL.  So something is amiss there.

What does:

mysql> show engines;

show?  If you see NO InnoDB then the rest of this will not work.

Other way IF InnoDB is shown in engines above:

Get an sql dump of current DB.

Edit sql dump with nano.

Search for "ENGINE" (case sensitive) to begin with to find that the engine is in that sql dump.

Then run a search and replace for 'ENGINE=whatever' replace with 'ENGINE=InnoDB'  case sensitive AND must be accurate.   Close gets you no cigar!

Replace ALL instances.   That could be memory intensive depending on how large your SQL dump is.  nano editing like this could push CPU to 100% at times.   Might shut down apache for a while to get as much memory as possible to edit.

Save the sql file.

Drop the DB for the site.

Re-create an empty DB:

Login to mysql

from mysql> prompt ...

create database [nameofdb] character set utf8 collate utf8_unicode_ci;

\q to quit

Then import the edited sql file into the database.

'spirit of sharing', Ken