Uso InnoDB quasi esclusivamente nelle mie applicazioni. Tuttavia, se non sto attento durante l'impostazione del tavolo, dimentico di cambiarlo e phpmyadmin mi attacca con MyISAM. C'è un modo per cambiare il motore di archiviazione predefinito?
Uso InnoDB quasi esclusivamente nelle mie applicazioni. Tuttavia, se non sto attento durante l'impostazione del tavolo, dimentico di cambiarlo e phpmyadmin mi attacca con MyISAM. C'è un modo per cambiare il motore di archiviazione predefinito?
Risposte:
UPDATE `GLOBAL_VARIABLES`
SET `VARIABLE_VALUE`="InnoDB"
WHERE `VARIABLE_NAME`="DEFAULT_STORAGE_ENGINE"
Questa risposta è un po 'in ritardo, ma potrebbe aiutare gli altri. Se hai paura di rovinare qualcosa sul server MySQL, puoi cambiare il motore predefinito quando crei una tabella da phpMyAdmin. Il creatore di selezione predefinito per i motori MySQL è questa funzione StorageEngine.class.php
nelle libraries
cartelle (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;
}
Questa selezione viene popolata dalla seguente query:
SHOW STORAGE ENGINES
Il codice seguente seleziona il motore predefinito impostato dal file di configurazione di MySQL:
(empty($selected) && $details['Support'] == 'DEFAULT')
Tuttavia, possiamo cambiarlo per farlo selezionare InnoDB come motore predefinito:
(empty($selected) && $details['Engine'] == 'InnoDB')