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


28

Ich verwende InnoDB fast ausschließlich in meinen Anwendungen. Wenn ich jedoch beim Einrichten des Tisches nicht aufpasse, vergesse ich, ihn zu ändern, und phpmyadmin haftet mir bei MyISAM. Gibt es eine Möglichkeit, die Standardspeicher-Engine zu ändern?


Vielleicht geht es nicht so sehr um PHPMyAdmin, sondern direkt um MySQL. Haben Sie Folgendes
Sebastian Roth

2
Gehen Sie dazu folgendermaßen vor: Navigieren Sie zu> phpmyadmin -> more -> variables -> storage engine und ändern Sie MyISAM in InnoDB.

@ user21380: Hier können Sie NUR sehen, welche Engine MySQL verwendet.
Machineaddict

Antworten:


21

Sie müssen die Zeile default-storage-engine = InnoDBunter dem [mysqld]Abschnitt Ihrer mysql-Konfigurationsdatei (je nach Betriebssystem my.cnf oder my.ini) hinzufügen und den mysqld-Dienst neu starten.

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


2
UPDATE `GLOBAL_VARIABLES` 
SET `VARIABLE_VALUE`="InnoDB" 
WHERE `VARIABLE_NAME`="DEFAULT_STORAGE_ENGINE"

2
Datenbank: information_schema
Owen Parker

1

Diese Antwort ist etwas spät, kann aber 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-Auswahlersteller für MySQL-Engines ist diese Funktion StorageEngine.class.phpin librariesOrdnern (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

Mit dem folgenden Code wird die von der MySQL-Konfigurationsdatei festgelegte Standard-Engine ausgewählt:

(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')
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.