Mysql
如何更改 phpmyadmin 中的預設儲存引擎?
我幾乎只在我的應用程序中使用 InnoDB。但是,如果我在設置表格時不小心,我會忘記更改它,並且 phpmyadmin 會使用 MyISAM。有沒有辦法更改預設儲存引擎?
您必須在mysql 配置文件(my.cnf 或 my.ini 取決於您的作業系統)部分
default-storage-engine = InnoDB
下添加該行並重新啟動 mysqld 服務。[mysqld]
我不相信你可以通過 PhpMyAdmin 來改變它。
這個答案有點晚了,但它可能對其他人有所幫助。如果您害怕在 MySQL 伺服器上搞砸,您可以在從 phpMyAdmin 創建表時更改預設引擎。MySQL 引擎的預設選擇創建者是文件夾下
StorageEngine.class.php
的這個函式libraries
(在 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')