Chinaunix首页 | 论坛 | 博客
  • 博客访问: 327451
  • 博文数量: 87
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 727
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-27 15:56
个人简介

开心了, 就笑;不开心了,就过会儿再笑。。。。

文章分类

全部博文(87)

文章存档

2017年(16)

2016年(28)

2015年(33)

2014年(10)

我的朋友

分类: Mysql/postgreSQL

2016-03-17 14:35:57



 数据库
我有更好的答案
2015-12-31 14:14 网友采纳
修改表引擎
1.对每个InnoDB表执行 ALTER TABLE table_name ENGINE=MyISAM;
2.停止Mysql服务;
3.移除InnoDB相关文件ibdata1等;
4.修改my.cnf中的参数,添加innodb_file_per_table;
在my.cnf中[mysqld]下设置
innodb_file_per_table=1
5.启动Mysql服务;
6.将刚才修改后的那些表改回InnoDB:ALTER TABLE table_name ENGINE=InnoDB;
导出InnoDB表
1.使用mysqldump命令导出所有的InnoDB表,例如: mysqldump –add-drop-table –extended-insert –disable-keys –quick ‘db_name’ –tables ‘tbl_name’ > ‘db_name.tbl_name.sql’
2.删掉这些表: 
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE db_name.tbl_name;
DROP TABLE db_name1.tbl_name1;
–– DROP other tables here…
SET FOREIGN_KEY_CHECKS=1;
3.停止Mysql服务;
4.移除InnoDB相关文件ibdata1等;
5.修改my.cnf中的参数,添加innodb_file_per_table;
6.启动Mysql服务;
7.在Mysql Console下导入表: 
SET FOREIGN_KEY_CHECKS=0;
SOURCE db_name.tbl_name.sql;
SOURCE db_name1.tbl_name1.sql;
–– SOURCE other files here…
SET FOREIGN_KEY_CHECKS=1;
导出整个数据库
这个是我常用的,虽然他和耗磁盘和时间,但是确实是最简便的:
1.导出所有的数据: /usr/bin/mysqldump ––extended-insert ––all-databases ––add-drop-database ––disable-keys ––flush-privileges ––quick ––routines ––triggers > all-databases.sql
2.停止Mysql服务;
3.重命名mysql数据文件夹;
4.修改my.cnf中的参数,添加innodb_file_per_table;
5.mysql_install_db重新初始化mysqld;
6.开启Mysql服务;
7.进入Mysql Console执行: 
SET FOREIGN_KEY_CHECKS=0;
SOURCE all-databases.sql;
SET FOREIGN_KEY_CHECKS=1;
8.重启数据库测试OK就领赏去吧。

如果因为断电或者直接关机导致idb文件出错,就需要重构这些文件
[mysqld]
加 innodb_force_recovery=1
阅读(773) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~