Pourquoi mes tables sont elles crees en MyISAM ?
stephaneeybert
14/03/2012, 16h10
Ah bon ? Quel genre de bugs ?
Et on fais comment alors ? Il faut changer de distribution ?
TBC_Ly0n
14/03/2012, 15h58
Sur une Release2 en 64b, il ne faut pas utiliser l'InnoDB sous peine de bugs.
stephaneeybert
11/03/2012, 12h23
J'ai donc utilise la commande suivante pour changer une table de MyISAM a InnoDB
alter table address engine=InnoDB;
Auparavent j'ai utilise la commande suivante pour eviter une erreur avec les contraintes d'integrite fonctionelle
set foreign_key_checks = 0;
Et j'avais aussi augmente la taille du buffer a 2G dans le fichier de configuration my.cnf de MySQL afin d'eviter l'erreur 1005 - 135
innodb_data_file_path = ibdata1:10M:autoextend:max:2G
stephaneeybert
03/03/2012, 22h29
Pour info, dans le cas ou l'on compile MySql, il faut lui passer les deux parametres suivants:
--with-plugins=innobase,innodb_plugin
Autrement, cela ne marche pas et InnoDB n'est pas active.
stephaneeybert
02/03/2012, 15h36
En fait il y avait aussi la directive:
skip-innodb
qui n'etait pas commentee.
Je l'ai commente et MySql a pu ensuite redemarrer.
Et InnoDB est maintenant active:
vps13495 stephane # mysqladmin -u root -p variables | grep have_innodb
Enter password:
| have_innodb | YES |
stephaneeybert
02/03/2012, 15h33
Je me suis rendu compte que InnoDB n'etait pas active.
vps13495 stephane # mysqladmin -u root -p variables | grep have_innodb
Enter password:
| have_innodb | DISABLED |
Du coup, j'ai localise mon fichier de configuration /etc/mysql/my.cnf et j'y ai ajoute la directive:
default-storage-engine = InnoDB
dans la partie:
[mysqld]
Mais MySql ne voulait plus redemarrer.
Du coup j'ai commente la directive.
Et je ne sais pas trop quoi faire...
stephaneeybert
20/02/2012, 14h00
Merci pour les tuyaux, je vais verifier ca.
gaboul49
20/02/2012, 10h47
Tu est sûr de vouloir travailler en latin1 ? Tu bosses avec une vieille appli incompatible utf-8 ?
Peut-être que innoDB n'est pas installé sur ton serveur.
stephaneeybert
20/02/2012, 10h36
Bonjour,
J'ai un script de creation de tables, qui specifie bien InnoDB mais les tables sont malgre tout creess en MyISAM.
mysql> CREATE TABLE `toto` (
-> `id` int(10) unsigned NOT NULL auto_increment,
-> `version` int(10) unsigned NOT NULL,
-> `address1` varchar(255) NOT NULL default '',
-> `address2` varchar(255) NOT NULL default '',
-> `zip_code` varchar(10) NOT NULL default '',
-> `city` varchar(255) NOT NULL default '',
-> `state` varchar(255) NOT NULL default '',
-> `country` varchar(255) NOT NULL default '',
-> `postal_box` varchar(50) NOT NULL default '',
-> PRIMARY KEY (`id`),
-> UNIQUE KEY `id` (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected, 1 warning (0.47 sec)
mysql> show create table toto;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| toto | CREATE TABLE `toto` (
`id` int(10) unsigned NOT NULL auto_increment,
`version` int(10) unsigned NOT NULL,
`address1` varchar(255) NOT NULL default '',
`address2` varchar(255) NOT NULL default '',
`zip_code` varchar(10) NOT NULL default '',
`city` varchar(255) NOT NULL default '',
`state` varchar(255) NOT NULL default '',
`country` varchar(255) NOT NULL default '',
`postal_box` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
Quelqu'un sait il pourquoi ?
Merci.
Stephane