windows mysql 怎么释放ibdata的空间

windows mysql 怎么释放ibdata的空间,第1张

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文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9467516.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存