innodb数据库批量转换表引擎为MyISAM
2015-06-04 10:25
387 查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php //连接数据库 $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); ?> |
如果是老的数据库,用的是 MyISAM 引擎,可以用顺利转换到 InnoDB 引擎。MySQL 提供了一个转换脚本(其实默认是用来给你往回转的 InnoDB –> MyISAM),可以在两种引擎中互换,用法很简单,具体可以自己看 help,这里举例一个刚刚转换过来的表:
1 2 3 4 | 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 引擎的。
相关文章推荐
- redis问题解决
- MySQL:SSL远程登录
- mysql的data数据库只有.frm 而.myd和.myi没有,使用正常
- Oracle误删除表数据后的恢复具体解释
- 11g oracle 用户密码过期问题
- Oracle Study之--Oracle 11g RAC添加节点错误
- C#中嵌入SQLite数据库的简单方法
- 升级MongoDB到2.6
- 转 Mysql分库分表方案
- mysql表结构复制到新表(不存在)
- sql学习笔记(17)----------MySQL命令
- mysql 多条件排序查询
- SQL模糊查询的写法
- mysql中间件研究(Atlas,cobar,TDDL)
- mysql按照中文名称排序
- mysql 多条记录判断相加减进行计算
- SQL笔记
- mysql 添加伪列 如同oracle的rownum
- plsql通过ip链接数据库
- MySQL远程访问问题