mysql 修改所有表为myisam_mysql innodb数据库批量转换表引擎为MyISAM的方法

本节内容:

mysql数据库引擎转换:innodb批量转换为MyISAM。

例子:

复制代码 代码示例:

//连接数据库

$host='localhost';

$user='mysql_username';   //管理账户

$passwd='mysql_password'; //密码

$db='wordpressdb';  //数据库名称

$link= mysql_connect($host,$user,$passwd);

if (!$link) {

die('Could not connect: '.mysql_error() );

}

mysql_select_db( $db,$link ) or die ('can\'t use'. $db . mysql_error());

$result=mysql_query("show tables ") or die( mysql_error());

while($row=mysql_fetch_row($result)){

#echo $row[0];

#var_dump($row);

echo "$row[0] \n";

mysql_query("alter table  $row[0] type='MYISAM'") or die (mysql_error());

}

#var_dump($result);

mysql_close($link);

?>

说明:

MySQL 从 5.5 之后默认引擎是 InnoDB,InnoDB 比 MyISAM 要好不少,但是毕竟庞大臃肿,所以以前都是默认 MyISAM,软硬件资源日渐丰富之后,InnoDB 就被重视了。

如果是旧的数据库,用的是 MyISAM 引擎,可以用顺利转换到 InnoDB 引擎。

MySQL 提供了一个转换脚本(其实默认是用来给你往回转的 InnoDB –> MyISAM),可以在两种引擎中互换。

分享一个示例,刚刚转换过的表:

mysql_convert_table_format yourdb --user=root --password='youpw' -f --socket= '/var/run/mysqld/mysqld.sock'

例句说明:

yourdb 是要转换的数据库名

yourpw 是 root 密码

socket 可以在 my.cnf 文件中找到。

注意事项:

1、MySQl 5.5 以后,mysql_convert_table_format 默认是将 InnoDB 转换成 MyISAM,如果要反过来转,用 –engine= INNODB 是不行的(莫名其妙就是不行),要直接修改 /usr/bin/mysql_convert_table_format 脚本,将里头 $opt_engine=”MYISAM”; 改成 $opt_engine=”INNODB”;  然后运行就可以了。

2、不要随便转换 MySQL 自己的数据库(mysql),这个数据库必须是 MyISAM 引擎的。

就是这些了,希望有助于大家理解与掌握mysql数据库表引擎的相关知识,深入学习下innodb、myISAM引擎的用法。

你可能感兴趣的:(mysql,修改所有表为myisam)