I recently migrated my IPS3 install to a new server where I installed MySQL 8 instead of 5. Trying to get IPS3 working with MySQL 8 proved to be a great challenge, so I just bit the bullet and migrated to IPS4 and wrote off my incompatible apps and hooks. However, I ran into a bug in the IPS4 updater. As per the MySQL manual, MEMBER was added as a reserved keyword in 8.0.17 (will be made non-reserved in 8.0.19, which isn't yet released).
applications/core/setup/upg_40000/upgrade.php includes this query:
$toRun = \IPS\core\Setup\Upgrade::runManualQueries( array( array(
'table' => 'core_voters',
'query' => "ALTER TABLE " . \IPS\Db::i()->prefix . "core_voters ADD COLUMN poll MEDIUMINT UNSIGNED NOT NULL COMMENT 'The poll ID',
ADD INDEX poll (poll),
DROP INDEX tid,
ADD INDEX member(member_id, poll)"
) ) );
This fails when running MySQL >=8.0.17. The last line of the query should instead be ADD INDEX `member`(member_id, poll) with backticks. Would be great to have this fixed so nobody else gets bitten by this.