Can't install 3.9 on Antelope file system

Can't install 3.9 on Antelope file system

by Albert R. -
Number of replies: 7

I'm trying to install Moodle 3.9 in a LAMP environment (dedicated server), and I'm running into an issue. When the installation process checks for the environment configuration, I get these 2 errors that are preventing the installation from continuing:

Your database uses Antelope as the file format. Full UTF-8 support in MySQL and MariaDB requires the Barracuda file format. Please switch to the Barracuda file format. See the documentation MySQL full unicode support for details.

For full support of UTF-8 both MySQL and MariaDB require you to change your MySQL setting 'innodb_large_prefix' to 'ON'. See the documentation for further details.

I've read that Moodle is now requiring Barracuda instead of Antelope, but I've also read some conflicting information, where it's more a recommendation and not a requirement. I've followed the suggestion made in this thread (changing the database collation to utf8_general_ci) but I still get the same error.

One solution would be to change the file system at a MySQL configuration level, but the problem is that I have many other databases in this same server and I've read that changing the file system can potentially break them.

Another interesting thing is that I actually have another Moodle 3.7 site in this same server (which was an originally installed from version 3.4 and upgraded to 3.7) and I did not have this issue when installing or upgrading, and the site works perfectly fine.

Any way I can force the installation with Antelope? Or if there's no other way around having to use Barracuda, any way I can force only this database to use Barracuda and not the whole MySQL installation?

Average of ratings: -
In reply to Albert R.

Re: Can't install 3.9 on Antelope file system

by Ken Task -
Picture of Particularly helpful Moodlers

Let's start with qualifications for this response ... none really ... don't work for Moodle HQ nor a Moodle Partner ... just a long time user of open source software.    There is only one constant ... change ... usually for the better (am 71 years of life experiences and by most 'standards' I hate change ..... how about you?)

and ... the bottom line:

Any way I can force the installation with Antelope? Or if there's no other way around having to use Barracuda, any way I can force only this database to use Barracuda and not the whole MySQL installation?

Answer: No (with a note that IF ... IF ... you want to contend with it, see link below from Percona folks).   Because Barracuda is a file system .. Antelope didn't exist as a file system before Barracuda came along.  File system is not a character set of a database nor is it a collation of a database.

How about other software compatibility?   Well, it is typical to find a WordPress with a Moodle ... and it's typical to see the web site for any entity to run a WordPress (it is arguably the most popular content management system on the planet).   So did you check WP official docs?

I'll save ya some time: https://wordpress.org/about/requirements/

Link above does mention the versions of MySQL/MariaDB but nothing about Barracuda nor Antelope.   BTW, I happen to run a site that has 5 Moodle sandboxes - 3.5.highest -> 3.9.highest (InnoDB/Barracuda) and a WordPress (5.4.2) without any issues.

What software do you run?   Have you checked?   Let you do that ... smile

Reference about:  'Percona folks' - note the year in the blog posting:

https://www.percona.com/blog/2014/01/14/innodb-file-formats-here-is-one-pitfall-to-avoid/

'Spirit of sharing', Ken


In reply to Ken Task

Re: Can't install 3.9 on Antelope file system

by Albert R. -
Hi Ken, thanks so much for your reply. If I understood correctly, what you're saying is that Moodle isn't supposed to work with Antelope? The thing is that I already have 2 Moodle sites (one with version 3.7) running without issues in the same server, I didn't have any issues during install like this time, I just assumed that something changed very recently in the requirements?

Regarding software compatibility and Wordpress, I'm not sure I fully understand how that's related to my question... I'm not trying to make Moodle compatible with Wordpress, I'm just trying a simple Moodle installation in a LAMP server, please let me know if I wrote something confusing in my first post.

I don't know if maybe an update to MySQL itself has changed something in the background?

Thanks again for your input!
In reply to Albert R.

Re: Can't install 3.9 on Antelope file system

by Ken Task -
Picture of Particularly helpful Moodlers

What can I say more .... 3.7 isn't 3.9 ... not in Kansas, anymore! :|

"the problem is that I have many other databases in this same server and I've read that changing the file system can potentially break them."

Above you had expressed concern or saw some posting about making the change to the single (*single*) DB server to Barracuda and how that might affect other Apps on same server using same DB server.  Did I not read that right?

I did ask what these other apps were and did you check their DB requirements.   Did ya?   I guessed at WordPress ... so I guessed wrong ... understandable ... can't do Vulcan Mind Melds ... and never have been able to! :|

WordPress OR OTHER APP will use the same DB server, right?   Barracuda has to be either set in my.cnf (MySQL 5.6 and below) Barracudea setting is *default* in MySQL 5.7 now ... don't even have to put that in the my.cnf.  Probably for MySQL 8.x also.

Sooooo ???????

'SoS', Ken

In reply to Ken Task

Re: Can't install 3.9 on Antelope file system

by Albert R. -
Ah gotcha, I see now why you said that. I guess to me the option of changing the file system for the whole server was out of the question to begin with so I didn't understand why you were talking about other possible apps in the same server.
In reply to Albert R.

Re: Can't install 3.9 on Antelope file system

by Leon Stringer -
Picture of Core developers Picture of Particularly helpful Moodlers

Antelope is supported with Moodle 3.9. I don't think this has changed much between 3.7 and 3.9, you'll see the warning on the Environment report of the 3.7 sites.

If there was different behaviour during the 3.9 installation I suspect this is because the database was created with the utf8mb4 character set and utf8mb4_unicode_ci collation which led to this setting appearing in config.php:

$CFG->dboptions = array (
  ⋮
  'dbcollation' => 'utf8mb4_unicode_ci',
);

So if it's a new site with incomplete install drop the database (create a backup first) and create it ensuring utf8 and utf8_unicode_ci are selected for the character set and collation respectively, e.g. CREATE DATABASE moodle39 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

If the config.php has been created check that the dbcollation is 'utf8_unicode_ci'.

You're probably aware of why utf8mb4 should be used. Consider using a new server for the new Moodle site which has the recommended MySQL configuration and migrate the other databases to this once you've determined they'll work as Ken suggests.

Average of ratings: Useful (1)
In reply to Leon Stringer

Re: Can't install 3.9 on Antelope file system

by Albert R. -
This did it! Thanks so much!

I do get a warning now recommending to be use utf8mb4_unicode_ci like you mentioned, but I guess that only works under Barracuda, correct? I've tried setting everything to utf8mb4_unicode_ci (database collation and that line of code in config.php) and get the same errors I was getting at first.
In reply to Albert R.

Re: Can't install 3.9 on Antelope file system

by Leon Stringer -
Picture of Core developers Picture of Particularly helpful Moodlers

"But I guess that only works under Barracuda" – yes. If you're using Antelope you need to make sure Moodle's database is created as utf8.

It is actually possible to have a utf8mb4 database with Antelope but only with smaller index sizes. To use utf8mb4 with full indexes, which Moodle uses, MySQL's innodb_large_prefix must be enabled and it's this setting that requires Barracuda.


Average of ratings: Useful (2)