>>>But for mysql in rhel5.x, the default mysql only allows 1000 bytes for each >>>foreign key
This seems to be the limitation of MyISAM engine. Using InnoDB does not cause this issue. -----Original Message----- From: Frank Zhang [mailto:frank.zh...@citrix.com] Sent: Friday, January 18, 2013 4:21 PM To: cloudstack-dev@incubator.apache.org Subject: take a look at your foreign key, it may exceed mysql limtion Some of our DB schema creates long foreign keys which exceed max length of foreign key allowed by mysql. For mysql default in 6.2 that allows longer key so we don't see the issue. But for mysql in rhel5.x, the default mysql only allows 1000 bytes for each foreign key, then the DB deployment will fail. I know ACS build will only support rhel6.x, but please still note you may break the rule some time. For example: CREATE TABLE `ntwk_offering_service_map` ( `id` bigint unsigned NOT NULL auto_increment, `network_offering_id` bigint unsigned NOT NULL COMMENT 'network_offering_id', `service` varchar(255) NOT NULL COMMENT 'service', `provider` varchar(255) COMMENT 'service provider', `created` datetime COMMENT 'date created', PRIMARY KEY (`id`), CONSTRAINT `fk_ntwk_offering_service_map__network_offering_id` FOREIGN KEY(`network_offering_id`) REFERENCES `network_offerings`(`id`) ON DELETE CASCADE, UNIQUE (`network_offering_id`, `service`, `provider`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; The key ' UNIQUE (`network_offering_id`, `service`, `provider`)' contains service(255) + provider(255), so there is at least 500 chars. Please note since mysql 5.x, varchar is calculated by chars not by bytes, so with uft8 encoding which is usually mult-bytes sequence, 500 chars definitely beyond 1000 bytes limit.