Làm cách nào để thay đổi công cụ lưu trữ mặc định trong phpmyadmin?


28

Tôi sử dụng InnoDB gần như độc quyền trong các ứng dụng của mình. Tuy nhiên, nếu tôi không cẩn thận khi thiết lập bảng, tôi quên thay đổi nó và phpmyadmin gắn bó tôi với MyISAM. Có cách nào để thay đổi công cụ lưu trữ mặc định?


Có lẽ nó không quá nhiều về PHPMyAdmin mà là MySQL trực tiếp. Bạn đã thử cách này chưa: - stackoverflow.com/questions/2286813/ Kẻ
Sebastian Roth

2
Có thể thực hiện bằng các bước sau: điều hướng đến> phpmyadmin -> more -> biến -> công cụ lưu trữ và thay đổi MyISAM thành InnoDB.

@ user21380: đó là nơi bạn CHỈ có thể thấy MySQL đang sử dụng công cụ gì.
máy móc

Câu trả lời:


21

Bạn phải thêm dòng default-storage-engine = InnoDBdưới [mysqld]phần của tệp cấu hình mysql của bạn (my.cnf hoặc my.ini tùy thuộc vào hệ điều hành của bạn) và khởi động lại dịch vụ mysqld.

Tôi không tin rằng bạn có thể thay đổi điều này thông qua PhpMyAdmin.


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

2
cơ sở dữ liệu: information_schema
Owen Parker

1

Câu trả lời này là loại muộn, nhưng nó có thể giúp đỡ người khác. Nếu bạn sợ làm hỏng thứ gì đó trên máy chủ MySQL, bạn có thể thay đổi công cụ mặc định khi tạo bảng từ phpMyAdmin. Trình tạo chọn mặc định cho các công cụ MySQL là chức năng này StorageEngine.class.phptrong librariescác thư mục (trong 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;
}

Lựa chọn này được điền từ truy vấn sau:

SHOW STORAGE ENGINES

Đoạn mã sau đang chọn công cụ mặc định được đặt bởi tệp cấu hình MySQL:

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

Tuy nhiên, chúng ta có thể thay đổi nó để làm cho nó chọn InnoDB làm công cụ mặc định:

(empty($selected) && $details['Engine'] == 'InnoDB')
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.