Why Change?

Well, MyISAM was the default storage engine of MySQL pre-5.5.

MyISAM offers fast read times, but slower writes than InnoDB & MyISAM can only do full table-level locking, whereas InnoDB has row-level locking. This can allow for backups to be run without impacting Jamf Pro usage (although this is not supported by Jamf).

Jamf Pro Server Tools Command-Line Interface

If you leverage the Jamf installers for installing Jamf Pro, its probably best you stick to the Jamf Pro Server Tools Command-Line Interface that ships with Jamf Pro 10.7.0.

Again, as mentioned above, as we have a non-standard environment & 100ish hosted datajar.mobi instances, we went the manual route.

Pre-Change

If your Jamf Pro has been around since before 10.6.0, you should see something like the below near the top of a Jamf Pro summary (just above the “Activation Code” section):

MyISAM Tables 417
InnoDB Tables ………….. 4

So, you will already have some InnoDB tables.

It’s also pertinent to now point out that there is a Jamf KB, which under the “Configure MySQL” section details some changes needed for InnoDB.

Prod, on a Friday before holiday

Oh, & if you’re looking to try the below please test on a test DB.

Ideally this would be a restored copy of your production DB.

And, never make this change in Prod, on a Friday before you go on holiday!

Finding The MyISAM Tables

The following, which I think was taken from Stack Exchange, needs to be ran on the MySQL host.

Note, this script at this stage is not making changes to your DB. But reading which tables are MyISAM then outputting a line if the table is MyISAM in the form of an MySQL statements which can be used later.

To use the below command, replace <account name> & <database name> as needed, it may be possible to also run this remotely using the -h flag to specify a remote MySQL host (but I have not attempted this).

Copying The Output

This will then select the text your previous Terminal prompt & the current one (at least on macOS), therefore selecting the output from the command.

Now you can simply copy the output.

Another option is mentioned by Graham in the comments below, whereby you write the output to a file to ingest.

Converting The Tables

With the command output copied, (& making sure that this isn’t being done in Prod, on a Friday before you go on holiday), stop each of Jamf Pro Web Apps which are using the DB we’re about to modify & then connect to your MySQL host & switch to your Jamf Pro’s DB via the “USE” command.

I will say, if that last part does not make sense, please do not proceed! (but there are some examples at the beginning of this Jamf KB.)

Once connected, you can run the 400+ MySQL statements by pasting the above output into the MySQL command line (!!!).

Each MySQL statement will then ran one by one, with output like the below: