If anyone is having issues with upgrading from 2.4.x to 3.0 and running into Foreign key constraint issues (see https://support.zabbix.com/browse/ZBX-10421) the issue is that you might need to convert some of the database tables from MyISAM to InnoDB
To see what engine an table is using
SHOW TABLE STATUS WHERE Name = 'xxx';
(where xxx is the table you want to check)
Here are the mysql commands to convert the needed tables to InnoDB
ALTER TABLE items ENGINE = InnoDB;
ALTER TABLE applications ENGINE = InnoDB;
ALTER TABLE operations ENGINE = InnoDB;
ALTER TABLE sysmaps ENGINE = InnoDB;
ALTER TABLE users ENGINE = InnoDB;
ALTER TABLE usrgrp ENGINE = InnoDB;
ALTER TABLE screens ENGINE = InnoDB;
ALTER TABLE slideshows ENGINE = InnoDB;
To see what engine an table is using
SHOW TABLE STATUS WHERE Name = 'xxx';
(where xxx is the table you want to check)
Here are the mysql commands to convert the needed tables to InnoDB
ALTER TABLE items ENGINE = InnoDB;
ALTER TABLE applications ENGINE = InnoDB;
ALTER TABLE operations ENGINE = InnoDB;
ALTER TABLE sysmaps ENGINE = InnoDB;
ALTER TABLE users ENGINE = InnoDB;
ALTER TABLE usrgrp ENGINE = InnoDB;
ALTER TABLE screens ENGINE = InnoDB;
ALTER TABLE slideshows ENGINE = InnoDB;