phpMyAdmin显示数据库是MyISAM,但表是InnoDB

数据库可能是一种types(MyISAM),表是另一种types(InnoDB),或者这是phpMyAdmin中的一个错误?

这正是显示。 Picture Here http://www.startbreakingfree.com/wp-content/uploads/2009/11/Picture-10.png

我尝试从命令validation数据库types,但无法find正确的命令来显示它。 如果数据库实际上是MyISAM,我怎么能把它改成InnoDB?

谢谢!

数据库没有存储引擎,只有表格。 我不知道什么PhpMyAdmin试图在那里表明,也许系统范围内的默认引擎或东西。 这些文件大概会说明​​跆拳道正在进行中。

这不是一个错误。 从MySQL文档 :

数据库可能包含不同types的表。 也就是说,表不需要全部使用相同的存储引擎来创build。

所以你很好。

要查看表格types:

 SHOW CREATE TABLE schema_migration 

要查看数据库存储引擎:

 mysqldump --no-data $YOURDATABASE 

唯一的错误是PhpMyAdmin显示数据库的任何东西,因为它在这个上下文中显示的任何内容都是不相关的。 正如womble所暗示的那样,它可能是默认的引擎(和编码),但我build议你忽略它,只关心用于表的引擎。 毕竟,数据库只不过是一个逻辑表的集合。

是的,我们可以在phpmyadmin中创build两种表格,我在数据库中创build了InnoDB和MyISAM表格。 这是你想要的。 谢谢

@ womble是对的。 但是,如果您想要放心,可以设置一些configuration选项。 你的mysqlconfiguration文件my.cnf ,如果你使用的是XAMPP,它位于/Applications/XAMPP/etc/my.cnf ,或者如果你使用的是标准安装,通常位于/etc/my.cnf ,一个名为[mysqld]的部分

默认的存储引擎是MyISAM,但你可以通过在该部分下添加它来将它更改为InnoDB:

的[mysqld]
 default-storage-engine = innodb

这将改变最后一行显示的内容:

如果你花时间确保你的数据库设置得很好,那么你可能会对将字符集设置为utf-8的几个项目感兴趣,因为它通常被看作是web的一个最佳实践发展:

在位于phpmyadmin文件夹中的config.inc.php中,可以设置这些参数:

 //默认使用utf_8(新版本pma上的标准值)
 // ************************************************ *******************
 $ cfg ['DefaultCharset'] ='utf_8';


 //设置默认sorting规则(utf8_general_ci是新版本的默认规则)
 // ************************************************ *********************
 $ cfg ['DefaultConnectionCollat​​ion'] ='utf8_general_ci';


 //使用mysqli进行安全性,读取通常用BLOBtypes显示的utf文件
 // ************************************************ *****************************
 $ cfg ['Servers'] [$ i] ['extension'] ='mysqli';

您可以通过访问PmaWiki或通过查看(但不改变!)该文件中的值来查找所有configuration选项: phpmyadmin/libraries/config.default.php

使用utf-8是web应用程序推荐的新标准,尤其是对于用户可以input具有不同语言/键盘集的单词的应用程序。 看看这个漂亮的小贴子中的utf8_bin和utf8_general_ci字符集之间的一些差异,这将有助于您select正确的一个。