Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySql-将InnoDB转换为数据库的MyISAM存储引擎_Php_Mysql_Phpmyadmin - Fatal编程技术网

Php MySql-将InnoDB转换为数据库的MyISAM存储引擎

Php MySql-将InnoDB转换为数据库的MyISAM存储引擎,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,如何在MySQL上将数据库存储引擎从InnoDB转换为MyISAM? 我发现很多网站都转换了数据库表的存储引擎,但不是数据库。 提前感谢。数据库只是MySQL处理名称空间的方式,因为数据库没有与其关联的引擎,只有表有一个存储引擎。这就是为什么您可以拥有一个包含多个不同表的数据库,每个表都有一个不同的引擎 您必须逐个修改每个表以将其切换到InnoDB。您不能更改数据库的默认存储引擎,但可以使用默认存储引擎配置设置更改整个服务器的默认存储引擎。请注意,这实际上不会更改现有表的存储引擎,只会更改更改

如何在
MySQL
上将数据库存储引擎从
InnoDB
转换为
MyISAM
? 我发现很多网站都转换了数据库表的存储引擎,但不是数据库。


提前感谢。

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


您必须逐个修改每个表以将其切换到InnoDB。

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

使用此选项

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

-干杯

若要使其永久化,请添加到my.cnf(根据上下文的不同,位置很少)

/etc/my.cnf

默认存储引擎=MyISAM

为了安全起见,请使用 显示数据库

在我的例子中,使用php进行quickie

$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);
在PhpMyadmin 4.5中 选择变量选项卡并查找 存储引擎
然后选择编辑并键入MyISAM。

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


你是说你已经试过了吗?我想转换数据库而不是表。你给的这个链接是为了转换表而不是数据库。伙计们,如果这个问题有帮助,你可以向上投票,不仅回答…管理员:刚刚开始!感谢您的回答,这对我很有帮助&是的,很抱歉回复太晚。@ArunVM-如果是这样,请发布一个关于如何做到这一点的答案。我知道这可以为服务器或单个表完成,但不能为数据库完成。我想将InnoDB转换为数据库而不是表的MyISAM存储引擎。谢谢。这节省了我很多时间。当我在运行MySQL(mariadb)的Raspberry PI上执行此操作时,当执行大型插入或更新时,系统最终停止锁定。简直快了10倍