Phpmyadmin içindeki varsayılan depolama motorunu nasıl değiştirebilirim?


28

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ı?


Belki de PHPMyAdmin hakkında çok fazla bir şey değil, doğrudan MySQL'dir. Bunu denedin mi: - stackoverflow.com/questions/2286813/…
Sebastian Roth

2
Bu adımları yaparak mümkündür:> phpmyadmin -> more -> değişkenler -> depolama motoruna gidin ve MyISAM'i InnoDB olarak değiştirin.

@ user21380: MySQL'in hangi motoru kullandığını SADECE görebileceğiniz yer.
machineaddict

Yanıtlar:


21

Çizgiyi eklemek zorunda default-storage-engine = InnoDBaltında [mysqld](sizin çalışma sistemine bağlı olarak my.cnf veya my.ini) mysql yapılandırma dosyasının bölümü ve Mysqld hizmetini yeniden başlatın.

Bunu PhpMyAdmin ile değiştirebileceğinize inanmıyorum.


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

2
veritabanı: information_schema
Owen Parker

1

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, librariesklasö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')
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.