31

如何将数据库存储引擎从InnoDB转为MyISAM开启MySQL?我发现很多网站都转换了数据库表的存储引擎,但不是数据库。 我附上了屏幕截图以便更好地理解

提前致谢。

4

7 回答 7

61

用这个!!

SET storage_engine=MYISAM;
ALTER TABLE table_name ENGINE = MyISAM;

-干杯!!

于 2013-10-08T13:22:40.167 回答
19
ALTER TABLE `table_name` ENGINE=INNODB
于 2013-06-27T05:53:34.740 回答
14

您无法更改数据库的默认存储引擎,但您可以使用default-storage-engine配置设置为整个服务器更改它。请注意,这实际上不会更改现有表的存储引擎,只是更改后创建的新表。

于 2012-04-23T12:53:10.160 回答
8

数据库只是 MySQL 的命名空间方式,因此数据库没有与之关联的引擎,只有表有存储引擎。这就是为什么您可以拥有一个包含多个不同表的数据库,每个表都有不同的引擎。

您必须一一修改每个表才能将它们切换到 InnoDB。

于 2012-04-23T12:51:30.800 回答
4

要使其永久化,请添加到 my.cnf (几个位置取决于上下文)

/etc/my.cnf

default-storage-engine= MyISAM

为了安全起见,使用 show databases 输出 db 列表;

就我而言,使用 php 进行快速操作。

$db = mysql_connect('localhost','someadmin','somepass');
$dbs = array();
$dbs[] = 'test';
$dbs[] = 'myImportantDb';

foreach($dbs as $v){
    mysql_select_db($v);
    $q = mysql_query('show tables');
    $tables = array();
    while($r = mysql_fetch_row($q)){
            $tables[] = $r[0];
    }
    foreach($tables as $t){
        echo "do $v.$t\n";
        mysql_query('ALTER TABLE `'.$t.'` ENGINE=MyISAM;');
    }
}
mysql_close($db);
于 2014-09-03T02:39:57.273 回答
1

在 PhpMyadmin 4.5 中选择变量选项卡并找到 存储引擎 并选择编辑并键入 MyISAM。

于 2016-04-30T12:13:50.663 回答
0

您可以通过 PhpMyAdmin 更改存储引擎。在表的详细信息视图中。看截图:

在 PhpMyAdmin 中更改存储引擎

于 2017-04-19T15:26:07.613 回答