2011-01-21 31 views
22

Tôi đang sử dụng mac và tôi đã cài đặt mysql bằng cách sử dụng homebrew.thay đổi công cụ mặc định mysql thành innodb

brew install mysql 

cài đặt khá chuẩn.

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

Tôi muốn innodb làm công cụ lưu trữ mặc định. Tôi cần phải làm gì?

Trả lời

33

Dưới [mysqld] phần trong file ini của bạn, thêm:

default-storage-engine = innodb 

Nó thường /etc/my.cnf, nhưng không chắc chắn về Mac.

Từ docs:

Trên Unix, Linux và Mac OS X, chương trình MySQL đọc tùy chọn khởi động từ các tập tin sau đây, theo thứ tự quy định (mục đầu được sử dụng đầu tiên).

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 

Người cuối cùng không bao giờ được sử dụng bởi các daemon.

+0

tệp ini của tôi ở đâu. Làm thế nào để tìm thấy nơi mysql sẽ tìm tập tin ini. –

+0

hiểu rồi. /etc/my.cnf làm việc vì tôi nhận được mysql: biến không xác định 'default-storage-engine = innodb' –

+1

@Nadal: bạn đã đặt nó dưới '[mysqld]'? – Quassnoi

0

Tôi có thể thấy từ phpMyAdmin rằng MySQL có cơ sở dữ liệu được gọi là information_schema và chứa bảng có tên là ENGINES. Ngoài kịch bản toàn cầu thay đổi tệp ini, không phải là giải pháp đơn giản để chuyển đổi các trường SUPPORT của bảng cho MyISAMInnoDB (thành 'CÓ' và 'DEFAULT' tương ứng)? Tôi đã không tự mình làm, vì vậy hãy tự chịu rủi ro ... và cho tôi biết mọi thứ sẽ diễn ra như thế nào nếu bạn làm vậy.

Các vấn đề liên quan