OVH Community, votre nouvel espace communautaire.

Pourquoi mes tables sont elles crees en MyISAM ?


stephaneeybert
14/03/2012, 17h10
Ah bon ? Quel genre de bugs ?

Et on fais comment alors ? Il faut changer de distribution ?

TBC_Ly0n
14/03/2012, 16h58
Sur une Release2 en 64b, il ne faut pas utiliser l'InnoDB sous peine de bugs.

stephaneeybert
11/03/2012, 13h23
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, 23h29
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, 16h36
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, 16h33
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, 15h00
Merci pour les tuyaux, je vais verifier ca.

gaboul49
20/02/2012, 11h47
CHARSET=latin1
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, 11h36
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