phpmyadminでデフォルトのストレージエンジンを変更するにはどうすればよいですか?


28

私はInnoDBをアプリケーションでほぼ独占的に使用しています。ただし、テーブルのセットアップに注意を払わない場合は、テーブルの変更を忘れてしまい、phpmyadminがMyISAMを使い続けます。デフォルトのストレージエンジンを変更する方法はありますか?


多分それはPHPMyAdminではなくMySQLに直接関係しているのかもしれません。あなたはこのを試してみました: - stackoverflow.com/questions/2286813/...
セバスティアン・ロス

2
次の手順を実行することで可能になります。> phpmyadmin-> more-> variables-> storage engineに移動し、MyISAMをInnoDBに変更します。

@ user21380:ここで、MySQLが使用しているエンジンのみを確認できます。
machineaddict 14年

回答:


21

mysql構成ファイルのセクション(オペレーティングシステムに応じてmy.cnfまたはmy.ini)のdefault-storage-engine = InnoDB下に行を追加し[mysqld]、mysqldサービスを再起動する必要があります。

これをPhpMyAdminで変更できるとは思わない。



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.