2011-01-21 14 views
22

Używam mac a zainstalowałem mysql używając homebrew.zmiana domyślnego silnika mysql na innodb

brew install mysql 

dość standardowa instalacja.

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   | 
+------------+---------+------------------------------------------------------------+--------------+------+------------+ 

Chciałbym, aby innodb był domyślnym silnikiem pamięci masowej. Co muszę zrobić?

Odpowiedz

33

Pod [mysqld] sekcja w pliku ini, dodać:

default-storage-engine = innodb 

Zwykle jest /etc/my.cnf, ale nie jestem pewien Mac.

Z docs:

Na Unix, Linux i Mac OS X, programy MySQL czytaj opcje startowe z następujących plików w określonej kolejności (Ulubione elementy są wykorzystane w pierwszej kolejności).

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 

Ten ostatni nie jest używany przez demona.

+0

gdzie jest mój plik ini. Jak znaleźć miejsce, w którym mysql będzie szukał pliku ini. –

+0

rozumiem. /etc/my.cnf działało, ponieważ otrzymuję mysql: nieznana zmienna 'default-storage-engine = innodb' –

+1

@Nadal: czy umieściłeś go w '[mysqld]'? – Quassnoi

0

Widzę z phpMyAdmina, że ​​MySQL ma bazę danych o nazwie information_schema i zawiera tabelę o nazwie ENGINES. Oprócz bardziej globalnego scenariusza zmiany pliku ini, czy nie byłoby prostym rozwiązaniem przełączanie pól tabeli SUPPORT dla MyISAM i InnoDB (odpowiednio na "TAK" i "DEFAULT")? Nie zrobiłem tego sam, więc idź na własne ryzyko ... i daj mi znać, jak się sprawy potoczą, jeśli to zrobisz.

Powiązane problemy