phpmyadmin에서 기본 저장소 엔진을 어떻게 변경합니까?


28

내 응용 프로그램에서 InnoDB를 거의 독점적으로 사용합니다. 그러나 테이블을 설정할 때주의하지 않으면 테이블을 변경하는 것을 잊어 버리고 phpmyadmin은 MyISAM을 고수합니다. 기본 스토리지 엔진을 변경하는 방법이 있습니까?


PHPMyAdmin이 아니라 MySQL에 관한 것일 수도 있습니다. 이것을 시도해 보셨습니까 : -stackoverflow.com/questions/2286813/…
Sebastian Roth

2
다음 단계를 수행하여 가능합니다.> phpmyadmin-> more-> 변수-> 스토리지 엔진으로 이동하여 MyISAM을 InnoDB로 변경하십시오.

@ user21380 : 그곳에서 MySQL이 사용하는 엔진 만 볼 수 있습니다.
machineaddict

답변:


21

mysql 설정 파일 (운영 체제에 따라 my.cnf 또는 my.ini) 섹션 default-storage-engine = InnoDB아래 에 행을 추가 [mysqld]하고 mysqld 서비스를 다시 시작해야합니다.

PhpMyAdmin을 통해 이것을 변경할 수 있다고 생각하지 않습니다.


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

2
데이터베이스 : information_schema
Owen Parker

1

이 답변은 늦었지만 다른 사람들에게 도움이 될 수 있습니다. MySQL 서버에서 문제가 발생하는 것을 두려워하는 경우 phpMyAdmin에서 테이블을 만들 때 기본 엔진을 변경할 수 있습니다. MySQL 엔진의 기본 선택 작성기 StorageEngine.class.phplibraries폴더 의이 기능입니다 (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;
}

이 선택은 다음 쿼리에서 채워집니다.

SHOW STORAGE ENGINES

다음 코드는 MySQL 구성 파일로 설정된 기본 엔진을 선택합니다.

(empty($selected) && $details['Support'] == 'DEFAULT')

그러나 InnoDB를 기본 엔진으로 선택하도록 변경할 수 있습니다.

(empty($selected) && $details['Engine'] == 'InnoDB')
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.