"You can set the value of innodb_file_format on the command line when you start mysqld, or in the option file my.cnf (Unix operating systems) or my.ini (Windows). You can also change it dynamically with the SET GLOBAL statement.
There is a script in moodlecode/admin/cli/ that will help. Login as root. On Ubuntu you might have to use sudo in front of the following php commands:
php mysql_compressed_rows.php will bring up the help for the script.
Using sudo: sudo php mysql_compressed_rows.php
php mysql_compressed_rows.php -l (that's a - 'lower case L') will "list problematic tables"
php mysql_compressed_rows.php -f will attempt to fix them.
The scripts in admin/cli/ will use the DB user DB password found in your config.php file of Moodle code. Could be the DB user there doesn't have priv's enough to make changes needed.
One could, on a temporary basis, change the DB user and DB password in config.php to 'superuser/root' for your MySQL. Execute the commands, then reset the DB user, DB password in the config.php file to the DB user/password with lesser priv's.
To show all variables in MySQL login to mysql via client as superuser/root.
Then from mysql> prompt issue:
SHOW VARIABLES LIKE '%innodb%';
or for 'file' related:
SHOW VARIABLES LIKE '%innodb_file%';
If server is dedicated to nothing but Moodle, one can set Baracuda to the default by adding the following line to [mysqld] section of my.cnf (probably found in /etc/ on Ubuntu)
Then do: SHOW VARIABLES LIKE '%innodb_file%'; from mysql> prompt again to check.
You should see:
| Variable_name | Value |
| innodb_file_format | Barracuda |
Suggest study up on other innodb settings.
'spirit of sharing', Ken