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?
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.
UPDATE `GLOBAL_VARIABLES`
SET `VARIABLE_VALUE`="InnoDB"
WHERE `VARIABLE_NAME`="DEFAULT_STORAGE_ENGINE"
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')