Granda merda.
Estou aqui há várias horas a tentar perceber porque é que a versão 5.1 do MySQL não cria tabelas INNODB (com integridade referencial). Melhor, já descobri porquê praí há uma hora. Agora estou a tentar corrigir.
Os gajos regrediram. Com a versão 3.23-max introduziram, por omissão, o motor INNODB nas sources. Além disso, quando se compilava a versão MAX, o INNODB ficava disponível por omissão. Na versão seguinte (versão 4), todas as subversões (subversões?!, ah ah ah) tinham o INNODB por omissão. A versão 5.0 idem. Agora, com a versão 5.1, apesar das sources trazerem o motor, tenho que configurar o MySQL, antes de o compilar, para gerar um binário com INNODB. Para isso, preciso de passar um parâmetro (novo), –with-innodb, ao script configure. Por omissão ele usa o parâmetro –without-innodb.
A meu ver, o único motivo pelo qual eles não incluem o motor INNODB por omissão é haver muita gente a usar apenas tabelas MyISAM, por exemplo em bases de dados com informação geográfica, e que não precisam do INNODB para nada e assim ficam com um SGBD mais pequeno e, consequentemente, mais leve para o sistema operativo.
Depois de descobrir isso, compilei o MySQL: esperei 1 hora (num Celeron D 2.8GHz, 1GB RAM, que é máquina onde faço compilações) e depois instalei-o criei as novas BDs e verifiquei que o INNODB não estava presente…?! Ao fim de uns minutos, percebi que me tinha enganado nos parâmetros: usei –without-innodb em vez de –with-innodb. Foda-se. Mais uma hora à espera. Decidi vir informar o people enquanto espero. Vamos lá ver se desta vez corre bem e se consigo ter integridade referencial nas BDs com o 5.1.
Deixe um comentário