Setting up Mysql 8
From Convention Master Documentation
Setting up in Mysql 8
The tasks I had to do to set up CM for mysql 8 were as follows.
- Before the system is even attempted to be installed, log into mysql as the root user sudo mysql and then run the query SET GLOBAL log_bin_trust_function_creators = 1;
- Edit /etc/mysql/mysql.conf.d/mysqld.cnf and add sql-mode="NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" to the end of the file. Then Restart Mysql server
Database Flags =
There are three SQL modes that are currently not functional with CM. These modes are found in database_check.inc.php on line 235 and are as follows:
- $disallowedSQLModes['NO_ZERO_DATE'] = "This prevents Convention Master from being able to store 0000-00-00 for customers who don't want or need to collect birthday. For legacy support storing dates as 0000-00-00 is required.";
- $disallowedSQLModes['ONLY_FULL_GROUP_BY'] = "This creates problems with complex queries within Convention Master"; // Requires full reationships for group by
- $disallowedSQLModes['STRICT_TRANS_TABLES'] = "This created problems when doing transactions for within Convention Master"; // Can't do all of the above inside transactions.