1,备份数据库
从命令行进入MySQL Server 51/bin
备份全部数据库,执行命令mysqldump -q -uusername -pyourpassword --add-drop-table --all-databases > /backup/allsql
除数据库
drop database db1;
drop database db2;
此处不删除应用数据库,在全库恢复数据库时,就会报异常错误,一些表的ibd会报不存在。
解决方式:
movo db1 /backup/db1_bak
movo db2 /backup/db2_bak
做完此步后,然后停止数据库。
2,修改mysql配置文件
修改mycnf文件,增加下面配置
innodb_file_per_table
对每张表使用单独的innoDB文件, 修改/etc/mycnf文件
3,删除原数据文件
删除原来的ibdata1文件及日志文件ib_logfile,删除data目录下的应用数据库文件夹(mysql,test,information_schema数据库本身文件夹不要删除)
4,还原数据库
启动数据库服务
从命令行进入MySQL Server 51/bin
还原全部数据库,执行命令mysql -uusername -pyourpassword < /allsql
大公告成。
mysql55有ibdata文件。根据查询相关资料信息,mysql55数据库,随着使用时间越长,mysql数据库目录下的ibdata文件就会越大,尤其是使用了Innodb引擎储存数据,典型的就是wordpress博客系统。
修改表引擎
1对每个InnoDB表执行 ALTER TABLE table_name ENGINE=MyISAM;
2停止Mysql服务;
3移除InnoDB相关文件ibdata1等;
4修改mycnf中的参数,添加innodb_file_per_table;
在mycnf中[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_nametbl_namesql’
2删掉这些表:
◦SET FOREIGN_KEY_CHECKS=0;
◦DROP TABLE db_nametbl_name;
◦DROP TABLE db_name1tbl_name1;
◦–– DROP other tables here…
◦SET FOREIGN_KEY_CHECKS=1;
3停止Mysql服务;
4移除InnoDB相关文件ibdata1等;
5修改mycnf中的参数,添加innodb_file_per_table;
6启动Mysql服务;
7在Mysql Console下导入表:
◦SET FOREIGN_KEY_CHECKS=0;
◦SOURCE db_nametbl_namesql;
◦SOURCE db_name1tbl_name1sql;
◦–– 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-databasessql
2停止Mysql服务;
3重命名mysql数据文件夹;
4修改mycnf中的参数,添加innodb_file_per_table;
5mysql_install_db重新初始化mysqld;
6开启Mysql服务;
7进入Mysql Console执行:
◦SET FOREIGN_KEY_CHECKS=0;
◦SOURCE all-databasessql;
◦SET FOREIGN_KEY_CHECKS=1;
8重启数据库测试OK就领赏去吧。
如果因为断电或者直接关机导致idb文件出错,就需要重构这些文件
[mysqld]
加 innodb_force_recovery=1
MyISAM是默认存储引擎。它基于更老的ISAM代码,但有很多有用的扩展。(注意MySQL 51不支持ISAM)。 每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。frm文件存储表定义。数据文件的扩展名为MYD (MYD
ibdata1不断增长,应该是你的mysql没有开启独立表空间,所有数据都写在ibdata1内;如果你是开启了的,那么开启之前肯定已经有数据库,那些数据无法独立分开,随着数据插入ibdata1文件也会增长。
以上就是关于windows mysql 怎么释放ibdata的空间全部的内容,包括:windows mysql 怎么释放ibdata的空间、mysql5.5有ibdata文件吗、如何收缩Mysql的ibdata1文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)