Yo uso InnoDB casi exclusivamente en mis aplicaciones. Sin embargo, si no tengo cuidado al configurar la mesa, me olvido de cambiarla y phpmyadmin me pega con MyISAM. ¿Hay alguna manera de cambiar el motor de almacenamiento predeterminado?
Yo uso InnoDB casi exclusivamente en mis aplicaciones. Sin embargo, si no tengo cuidado al configurar la mesa, me olvido de cambiarla y phpmyadmin me pega con MyISAM. ¿Hay alguna manera de cambiar el motor de almacenamiento predeterminado?
Respuestas:
UPDATE `GLOBAL_VARIABLES`
SET `VARIABLE_VALUE`="InnoDB"
WHERE `VARIABLE_NAME`="DEFAULT_STORAGE_ENGINE"
Esta respuesta llega tarde, pero podría ayudar a otros. Si tiene miedo de estropear algo en el servidor MySQL, puede cambiar el motor predeterminado al crear una tabla desde phpMyAdmin. El creador de selección predeterminado para los motores MySQL es esta función StorageEngine.class.php
en libraries
carpetas (en 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;
}
Esta selección se completa a partir de la siguiente consulta:
SHOW STORAGE ENGINES
El siguiente código selecciona el motor predeterminado establecido por el archivo de configuración de MySQL:
(empty($selected) && $details['Support'] == 'DEFAULT')
Sin embargo, podemos cambiarlo para que seleccione InnoDB como motor predeterminado:
(empty($selected) && $details['Engine'] == 'InnoDB')