0

After db migration, Change Log tab on Contact pages doesn't load due to error about creating temporary tables using memory engine.

I could recreate the error with the following query:

mysql> CREATE TEMPORARY TABLE `civicrm_tmp_e_logsummary_6d49479e46cb91cb350f7e5f5b93e7ca` (id int(10),  log_civicrm_entity_log_grouping varchar(32), log_action varchar(64), log_type varchar(64), log_user_id int(10), log_date timestamp, altered_contact varchar(128), altered_contact_id int(10), log_conn_id varchar(17), is_deleted tinyint(4), display_name varchar(128)) ENGINE=MEMORY COLLATE utf8mb3_unicode_ci;
ERROR 3161 (HY000): Storage engine MEMORY is disabled (Table creation is disallowed).

The error is a bit misleading, because MEMORY engine is actually enabled:

mysql> SELECT ENGINE, SUPPORT FROM information_schema.ENGINES WHERE ENGINE = 'MEMORY';
+--------+---------+
| ENGINE | SUPPORT |
+--------+---------+
| MEMORY | YES     |
+--------+---------+

I've given the db user all privileges, but this didn't help.

mysql> GRANT ALL PRIVILEGES ON `dbuser`.* TO 'dbuser'@'%'; FLUSH PRIVILEGES;

Since this is managed db, I can't give SUPER user privileges.


One workaround is to change to simplified logging at /civicrm/admin/setting/misc?reset=1 (then it works with simplified view), however I need detailed logging to be enabled.


Is this issue db or Civi problem? Either way, is there any solution for this?

Like maybe there a way in config to force CiviCRM to create temporary tables using different engine (ENGINE=InnoDB)?

Or maybe upgrading CiviCRM to the newer version could help?

1

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.