phpMyAdmin показывает базу данных MyISAM, но таблицы InnoDB

Возможно ли, чтобы база данных была одного типа (MyISAM), а таблицы - другого типа (InnoDB), или это ошибка в phpMyAdmin?

Это показывает именно это. http://www.startbreakingfree.com/wp-content/uploads/2009/11/Picture-10.png

Я попытался проверить тип базы данных из команды, но не смог найти подходящую команду для ее отображения. Если база данных на самом деле MyISAM, как я могу изменить ее на InnoDB?

Спасибо!

5 ответов

Решение

Базы данных не имеют механизмов хранения, только таблицы. Я понятия не имею, что PhpMyAdmin пытается там указать, возможно, общесистемный движок по умолчанию или что-то в этом роде. Документация, вероятно, пролила бы некоторый свет на происходящее WTF.

Это не ошибка. Из документации MySQL:

База данных может содержать таблицы разных типов. То есть таблицы не обязательно должны быть созданы с одним и тем же механизмом хранения.

Так что ты в порядке.

Чтобы увидеть тип таблицы:

SHOW CREATE TABLE schema_migration

Чтобы увидеть механизм хранения базы данных:

mysqldump --no-data $YOURDATABASE

Единственная ошибка в том, что PhpMyAdmin вообще что-то показывает для базы данных, потому что все, что он показывает в этом контексте, не имеет значения. Как предполагает womble, он может указывать на механизм по умолчанию (и кодировку), но я предлагаю вам игнорировать его и интересоваться только механизмом, используемым для таблиц. В конце концов, база данных - это чуть больше, чем логическая коллекция таблиц.

Да , мы можем создать 2 вида таблиц в phpmyadmin, я создал таблицы InnoDB и MyISAM в моей базе данных. Это то, что вы хотите. Спасибо

@womble прав. Однако, если вы хотите немного спокойствия, вы можете установить несколько параметров конфигурации. Ваш конфигурационный файл mysql, my.cnf, который, если вы используете XAMPP находится по адресу /Applications/XAMPP/etc/my.cnf или, если вы используете стандартную установку, обычно находится по адресу /etc/my.cnf, имеет раздел под названием [mysqld]

Движком хранилища по умолчанию является MyISAM, но вы можете изменить его на InnoDB, добавив его в этот раздел:

[ТуздЫ]
default-storage-engine = innodb

Это изменит то, что появляется в этом последнем ряду:

Если вы не торопитесь, чтобы убедиться, что ваша база данных действительно настроена правильно, вас могут заинтересовать еще несколько пунктов, касающихся установки набора символов в utf-8, потому что это обычно рассматривается как лучшие практики для веб развитие:

В вашем config.inc.php, который находится в вашей папке phpmyadmin, вы можете установить следующие параметры:

// используем utf_8 по умолчанию (стандартные значения в более новых версиях pma)
// ************************************************ *******************
$ cfg ['DefaultCharset'] = 'utf_8';


// устанавливаем сортировку по умолчанию (utf8_general_ci по умолчанию в более новых версиях)
// ************************************************ *********************
$ cfg ['DefaultConnectionCollation'] = 'utf8_general_ci';


// используем mysqli для обеспечения безопасности и, читая utf, обычно отображаются с типом BLOB
// *****************************************************************************
$cfg['Servers'][$i]['extension'] = 'mysqli';

Вы можете найти все параметры конфигурации, посетив PmaWiki или посмотрев (но не изменив!) Значения в этом файле: phpmyadmin/libraries/config.default.php,

Использование utf-8 - это новый рекомендуемый стандарт с веб-приложениями, особенно для приложений, где пользователи могут вводить слова на разных языках / наборах клавиатуры. Посмотрите на некоторые различия между наборами символов utf8_bin и utf8_general_ci в этом милом небольшом посте, который должен помочь вам выбрать правильный.

Другие вопросы по тегам