2010-06-16 19 views
46

मैं चरित्र सेट और संयोजन सहित कई डिफ़ॉल्ट विकल्पों के साथ एक MySQL डेटाबेस बनाने के लिए SQL लिखने पर काम कर रहा हूं। क्या इस डेटाबेस में टेबल के लिए डिफ़ॉल्ट स्टोरेज इंजन को InnoDB पर सेट करना संभव है?मैं MySQL द्वारा उपयोग किए जाने वाले डिफ़ॉल्ट स्टोरेज इंजन को कैसे सेट कर सकता हूं?

मैं MySQL 5.1 मैनुअल के माध्यम से देख रहा था और मैं बयान ENGINE=innodb जो एक CREATE TABLE बयान से संलग्न किया जाएगा मिल गया है, लेकिन मैं एक CREATE DATABASE बयान से संबंधित कुछ भी नहीं मिला है।

क्या डेटाबेस निर्माण के हिस्से के रूप में ऐसा करने का कोई सामान्य तरीका है, या इसे तालिका-दर-तालिका आधार पर निर्दिष्ट करने की आवश्यकता है?

उत्तर

57

संदर्भ मैनुअल (Setting the Storage Engine) का हवाला देते हुए:

आप ENGINE विकल्प को छोड़ देते हैं, तो डिफ़ॉल्ट भंडारण इंजन प्रयोग किया जाता है। आम तौर पर, यह MyISAM है, लेकिन आप --default-storage-engine सर्वर स्टार्टअप विकल्प का उपयोग कर, या my.cnf विन्यास फाइल में default-storage-engine विकल्प सेट करने के द्वारा बदल सकते हैं।

डिफ़ॉल्ट भंडारण इंजन विकल्प my.cnf में mysqld खंड का हिस्सा होना चाहिए;

[mysqld] 
default-storage-engine = innodb 

आप वर्तमान सत्र के लिए डिफ़ॉल्ट स्टोरेज इंजन भी बदलना चाहते हैं। आप storage_engine चर सेट करके ऐसा कर सकते हैं:

SET storage_engine=INNODB; 
+7

ध्यान दें, आप mysql पुनर्स्थापित करने के लिए परिवर्तनों को प्रभावी करने my.cnf करने के लिए किया है। बहुत स्पष्ट लेकिन यह मुझे फिसल गया। –

+0

इसे my.cnf में सेट करने के लिए, मुझे लगता है कि इसे [mysqld] अनुभाग में जाना चाहिए, या इससे कोई फर्क पड़ता है? –

+1

mysql में नोट> = 5.7.9 आपको डिफ़ॉल्ट_स्टॉरेज_एन्गिन – mjj1409

5

आप जब mysqld शुरू करने डिफ़ॉल्ट संग्रहण इंजन निर्दिष्ट करने के लिए की जरूरत है। उदाहरण के लिए:

mysqld --default-storage-engine=InnoDB 

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

+2

मुझे और स्पष्ट होना चाहिए था ... मुझे पता है कि CREATE तालिका विवरणों से InnoDB का उपयोग करके और स्टार्टअप विकल्पों का उपयोग करके और my.cnf में संशोधन करके कैसे निर्दिष्ट किया जाए। मैं विशेष रूप से पूछ रहा हूं कि एक SQL स्क्रिप्ट में CREATE डेटाबेस स्टेटमेंट के हिस्से के रूप में करना संभव है या नहीं। – memilanuk

+0

नहीं, मुझे ऐसा करने की विधि से अवगत नहीं है। – sml

संबंधित मुद्दे

 संबंधित मुद्दे