web-dev-qa-db-fra.com

Comment puis-je définir le moteur de stockage par défaut utilisé par MySQL?

J'ai travaillé sur l'écriture de SQL pour créer une base de données MySQL avec plusieurs options par défaut, dont le jeu de caractères et le classement. Est-il possible de définir le moteur de stockage par défaut pour les tables de cette base de données sur InnoDB?

J'ai parcouru le manuel MySQL 5.1 et j'ai trouvé la déclaration ENGINE=innodb qui serait ajouté à un CREATE TABLE, mais je n'ai rien trouvé concernant un CREATE DATABASE déclaration.

Existe-t-il un moyen normal de le faire dans le cadre de la création de la base de données, ou doit-il être spécifié table par table?

51
memilanuk

Citant le manuel de référence ( Configuration du moteur de stockage ):

Si vous omettez l'option ENGINE, le moteur de stockage par défaut est utilisé. Il s'agit normalement de MyISAM, mais vous pouvez le modifier en utilisant le --default-storage-engine option de démarrage du serveur, ou en définissant default-storage-engine dans l'option my.cnf fichier de configuration.

L'option default-storage-engine doit faire partie de la section mysqld dans my.cnf ;

[mysqld]
default-storage-engine = innodb

Vous pouvez également modifier le moteur de stockage par défaut uniquement pour la session en cours. Vous pouvez le faire en définissant le storage_engine variable:

SET storage_engine=INNODB;
65
Daniel Vassallo

vous devez spécifier le moteur de stockage par défaut au démarrage de mysqld. par exemple:

mysqld --default-storage-engine=InnoDB

http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_default-storage-engine

5
sml