ฉันจะเปลี่ยนเอ็นจิ้นการจัดเก็บเริ่มต้นใน phpmyadmin ได้อย่างไร?


28

ฉันใช้ InnoDB เกือบทั้งหมดในแอปพลิเคชันของฉัน อย่างไรก็ตามถ้าฉันไม่ระวังเมื่อทำการตั้งค่าตารางฉันลืมที่จะเปลี่ยนและ phpmyadmin เกาะติดฉันด้วย MyISAM มีวิธีในการเปลี่ยนเอ็นจิ้นการจัดเก็บข้อมูลเริ่มต้นหรือไม่?


อาจไม่ใช่เรื่องเกี่ยวกับ PHPMyAdmin มากนัก แต่เป็น MySQL โดยตรง คุณลองสิ่งนี้แล้ว: - stackoverflow.com/questions/2286813/…
Sebastian Roth

2
เป็นไปได้โดยทำตามขั้นตอนเหล่านี้: ไปที่> phpmyadmin -> more -> ตัวแปร -> เอ็นจิ้นการจัดเก็บและเปลี่ยน MyISAM เป็น InnoDB

@ user21380: นั่นคือที่ที่คุณสามารถเห็นได้ว่าเอ็นจิ้น MySQL ใช้งานอะไรอยู่
machineaddict

คำตอบ:


21

คุณต้องเพิ่มบรรทัดdefault-storage-engine = InnoDBใต้[mysqld]ส่วนของไฟล์ปรับแต่ง mysql ของคุณ (my.cnf หรือ my.ini ขึ้นอยู่กับระบบปฏิบัติการของคุณ) และเริ่มบริการ 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:

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

อย่างไรก็ตามเราสามารถเปลี่ยนเพื่อให้เลือก InnoDB เป็นเอ็นจิ้นเริ่มต้น:

(empty($selected) && $details['Engine'] == 'InnoDB')
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.