2011-01-21 14 views
22

Sto usando mac e ho installato mysql usando homebrew.cambia il motore predefinito mysql in innodb

brew install mysql 

installazione abbastanza standard.

mysql> show engines; 
+------------+---------+------------------------------------------------------------+--------------+------+------------+ 
| Engine  | Support | Comment             | Transactions | XA | Savepoints | 
+------------+---------+------------------------------------------------------------+--------------+------+------------+ 
| MRG_MYISAM | YES  | Collection of identical MyISAM tables      | NO   | NO | NO   | 
| CSV  | YES  | CSV storage engine           | NO   | NO | NO   | 
| MyISAM  | DEFAULT | Default engine as of MySQL 3.23 with great performance  | NO   | NO | NO   | 
| InnoDB  | YES  | Supports transactions, row-level locking, and foreign keys | YES   | YES | YES  | 
| MEMORY  | YES  | Hash based, stored in memory, useful for temporary tables | NO   | NO | NO   | 
+------------+---------+------------------------------------------------------------+--------------+------+------------+ 

Vorrei che innodb fosse il motore di archiviazione predefinito. Cosa devo fare?

risposta

33

Sotto [mysqld] sezione nel file ini, aggiungere:

default-storage-engine = innodb 

solito è /etc/my.cnf, ma non è sicuro su Mac.

Dal docs:

In Unix, Linux e Mac OS X, i programmi MySQL leggere le opzioni di avvio dai seguenti file, nell'ordine specificato (migliori elementi vengono utilizzati in primo luogo).

File Name Purpose 

/etc/my.cnf   Global options 
/etc/mysql/my.cnf Global options (as of MySQL 5.1.15) 
SYSCONFDIR/my.cnf Global options 
$MYSQL_HOME/my.cnf Server-specific options 
defaults-extra-file The file specified with --defaults-extra-file=path, if any 
~/.my.cnf   User-specific options 

L'ultima si è mai usato dal demone.

+0

dov'è il mio file ini. Come faccio a trovare dove mysql cercherà il file ini. –

+0

capito. /etc/my.cnf ha funzionato perché sto ottenendo mysql: variabile sconosciuta 'default-storage-engine = innodb' –

+1

@Nadal: lo hai posizionato in '[mysqld]'? – Quassnoi

0

Posso vedere da phpMyAdmin che MySQL ha un database chiamato information_schema e contiene una tabella denominata ENGINES. A parte lo scenario più globale di modifica di un file ini, non sarebbe una soluzione semplice cambiare i campi SUPPORT della tabella per MyISAM e InnoDB (rispettivamente su "SÌ" e "PREDEFINITO")? Non l'ho fatto da solo, quindi procedi a tuo rischio ... e fammi sapere come vanno le cose se lo fai.

Problemi correlati