Some MySQL lessons learned, the hard way, as I upgraded our Casper installation to v9.82 this past weekend:
Do NOT upgrade MySQL to v5.7.x for use with JSS if you are restoring data from an older version of MySQL! If you do, the JSS will fail to access data correctly from the MySQL v5.7.x database server. For example, the policy history will be missing or incomplete, and the policy status page will have black pie charts (rather than the yellow/green ones).
To fix: Use the latest version of MySQL v5.6.x (currently v5.6.28) instead.Do NOT attempt to use a filesystem copy (directory to directory) to speed up the MySQL database backup / restore process! Yes, the JAMF-provided (and Java-based) JSSDatabaseUtility is slow as molasses — taking over 90 mins to backup and restore less than half a gigabyte (~460MB) of data — but the utility has the huge advantage that it works.
To fix: Use JSSDatabaseUtility to backup/restore the MySQL data.Do NOT use a forward slash (‘/’) in the MySQL password for the jamfsoftware database in MySQL! If you do, a postinstall script will fail in the JSS installer pkg. This is because the postinstall script invokes the Unix command /usr/bin/sed to edit the database settings, which treats a forward slash in the password string as a field separator — oops — and therefore JSS attempts to login to the database will fail.
To workaround: Don't use any characters in the MySQL password that sed might interpret as a field separator. Alternatively, edit the /Library/JSS/Tomcat/webapps/ROOT/WEB-INF/xml/DataBase.xml file manually.
It took several hours of pulling my hair out to track down the above. Hopefully, this will help others avoid these pitfalls now.