मैं phpmyadmin में डिफ़ॉल्ट भंडारण इंजन को कैसे बदल सकता हूं?


28

मैं अपने अनुप्रयोगों में लगभग विशेष रूप से InnoDB का उपयोग करता हूं। हालाँकि, यदि मैं टेबल सेट करते समय सावधान नहीं हूँ, तो मैं इसे बदलना भूल जाता हूँ और phpmyadmin ने मुझे MyISAM के साथ चिपका दिया। क्या डिफ़ॉल्ट स्टोरेज इंजन को बदलने का कोई तरीका है?


शायद यह PHPMyAdmin के बारे में इतना नहीं है, लेकिन MySQL सीधे। क्या आपने यह कोशिश की है: - stackoverflow.com/questions/2286813/…
सेबेस्टियन रोथ

2
इन चरणों को करने से यह संभव है: नेविगेट करें> phpmyadmin -> अधिक -> चर -> भंडारण इंजन और इसे MyISAM से InnoDB में बदलें।

@ user21380: यह वह जगह है जहाँ आप केवल देख सकते हैं कि MySQL किस इंजन का उपयोग कर रहा है।
मशिनहेडडिक्ट

जवाबों:


21

आपको अपनी mysql config फाइल (my.cnf या my.ini अपने ऑपरेशन सिस्टम के आधार पर) default-storage-engine = InnoDBके [mysqld]अनुभाग के तहत लाइन को जोड़ना होगा और mysqld सेवा को पुनरारंभ करना होगा।

मुझे नहीं लगता कि आप इसे PhpMyAdmin के माध्यम से बदल सकते हैं।



1

यह उत्तर एक तरह का है, लेकिन यह दूसरों की मदद कर सकता है। यदि आप MySQL सर्वर पर कुछ गड़बड़ करने से डरते हैं, तो आप phpMyAdmin से एक टेबल बनाते समय डिफ़ॉल्ट इंजन को बदल सकते हैं। MySQL इंजन के लिए डिफ़ॉल्ट चयन निर्माता के तहत इस समारोह है StorageEngine.class.phpमें librariesफ़ोल्डर (phpMyAdmin 3.5.8.2 में):

<?php
/**
 * returns HTML code for storage engine select box
 *
 * @param string  $name                    The name of the select form element
 * @param string  $id                      The ID of the form field
 * @param string  $selected                The selected engine
 * @param boolean $offerUnavailableEngines Should unavailable storage engines be offered?
 *
 * @static
 * @return  string  html selectbox
 */
static public function getHtmlSelect($name = 'engine', $id = null,
  $selected = null, $offerUnavailableEngines = false)
{
    $selected   = strtolower($selected);
    $output     = '<select name="' . $name . '"'
        . (empty($id) ? '' : ' id="' . $id . '"') . '>' . "\n";

    foreach (PMA_StorageEngine::getStorageEngines() as $key => $details) {
        // Don't show PERFORMANCE_SCHEMA engine (MySQL 5.5)
        // Don't show MyISAM for Drizzle (allowed only for temporary tables)
        if (! $offerUnavailableEngines
            && ($details['Support'] == 'NO'
            || $details['Support'] == 'DISABLED'
            || $details['Engine'] == 'PERFORMANCE_SCHEMA')
            || (PMA_DRIZZLE && $details['Engine'] == 'MyISAM')
        ) {
            continue;
        }

        $output .= '    <option value="' . htmlspecialchars($key). '"'
            . (empty($details['Comment'])
                ? '' : ' title="' . htmlspecialchars($details['Comment']) . '"')
            . (strtolower($key) == $selected || (empty($selected) && $details['Support'] == 'DEFAULT')
                ? ' selected="selected"' : '') . '>' . "\n"
            . '        ' . htmlspecialchars($details['Engine']) . "\n"
            . '    </option>' . "\n";
    }
    $output .= '</select>' . "\n";
    return $output;
}

यह चयन निम्नलिखित क्वेरी से आबाद है:

SHOW STORAGE ENGINES

निम्न कोड MySQL config फाइल द्वारा निर्धारित डिफ़ॉल्ट इंजन का चयन कर रहा है:

(empty($selected) && $details['Support'] == 'DEFAULT')

हालाँकि, हम इसे डिफ़ॉल्ट इंजन के रूप में InnoDB का चयन करने के लिए बदल सकते हैं:

(empty($selected) && $details['Engine'] == 'InnoDB')
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.