Sadece uygulamalarımda InnoDB kullanıyorum. Bununla birlikte, masayı hazırlarken dikkatli olmazsam değiştirmeyi unutuyorum ve phpmyadmin beni MyISAM ile birleştiriyor. Varsayılan depolama motorunu değiştirmenin bir yolu var mı?
Sadece uygulamalarımda InnoDB kullanıyorum. Bununla birlikte, masayı hazırlarken dikkatli olmazsam değiştirmeyi unutuyorum ve phpmyadmin beni MyISAM ile birleştiriyor. Varsayılan depolama motorunu değiştirmenin bir yolu var mı?
Yanıtlar:
UPDATE `GLOBAL_VARIABLES`
SET `VARIABLE_VALUE`="InnoDB"
WHERE `VARIABLE_NAME`="DEFAULT_STORAGE_ENGINE"
Bu cevap biraz geç olsa da, başkalarına yardımcı olabilir. MySQL sunucusunda bir şeyi karıştırmaktan korkuyorsanız, phpMyAdmin'den bir tablo oluştururken varsayılan motoru değiştirebilirsiniz. MySQL motorları için varsayılan seçim oluşturucu StorageEngine.class.php
, libraries
klasörlerin altındaki bu işlevdir (phpMyAdmin 3.5.8.2'de):
<?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;
}
Bu seçim aşağıdaki sorgudan doldurulur:
SHOW STORAGE ENGINES
Aşağıdaki kod, MySQL config dosyası tarafından ayarlanan varsayılan motoru seçmektir:
(empty($selected) && $details['Support'] == 'DEFAULT')
Ancak, varsayılan motor olarak InnoDB'yi seçmesi için değiştirebiliriz:
(empty($selected) && $details['Engine'] == 'InnoDB')