it-swarm-eu.dev

Wie kann ich die Standardspeicher-Engine in phpmyadmin ändern?

Ich verwende InnoDB fast ausschließlich in meinen Anwendungen. Wenn ich jedoch beim Einrichten der Tabelle nicht aufpasse, vergesse ich, sie zu ändern, und phpmyadmin hält mich bei MyISAM fest. Gibt es eine Möglichkeit, die Standardspeicher-Engine zu ändern?

28
Kaji

Sie müssen die Zeile default-storage-engine = InnoDB unter dem [mysqld] Abschnitt Ihrer MySQL-Konfigurationsdatei (my.cnf oder my.ini, abhängig von Ihrem Betriebssystem) und starten Sie den MySQL-Dienst neu.

Ich glaube nicht, dass Sie dies durch PhpMyAdmin ändern können.

21
BenV
UPDATE `GLOBAL_VARIABLES` 
SET `VARIABLE_VALUE`="InnoDB" 
WHERE `VARIABLE_NAME`="DEFAULT_STORAGE_ENGINE"
2
Owen Parker

Diese Antwort ist etwas spät, aber sie könnte anderen helfen. Wenn Sie Angst haben, etwas auf dem MySQL-Server durcheinander zu bringen, können Sie die Standard-Engine ändern, wenn Sie eine Tabelle aus phpMyAdmin erstellen. Der Standard-Ersteller für MySQL-Engines ist diese Funktion unter StorageEngine.class.php in libraries Ordnern (in 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;
}

Diese Auswahl wird aus der folgenden Abfrage ausgefüllt:

SHOW STORAGE ENGINES

Der folgende Code wählt die Standard-Engine aus, die von der MySQL-Konfigurationsdatei festgelegt wurde:

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

Wir können es jedoch so ändern, dass InnoDB als Standard-Engine ausgewählt wird:

(empty($selected) && $details['Engine'] == 'InnoDB')
1
machineaddict