mysql使用释放资源_数据库--释放mysql数据库资源

本文介绍了如何解决MySQL资源不释放的问题,包括关闭log_bin日志、导出与删除数据库、重新导入表空间以及处理相关错误的步骤,旨在帮助优化数据库性能和大小。
摘要由CSDN通过智能技术生成

数据库--释放mysql数据库资源

背景

nikeodong 之前做了项目的数据库主从,在全备的过程发现数据库是越来越大了;最后发现是资源不释放的问题。

目的

为了解决 mysql 资源不释放的问题。

步骤

1、vim /etc/my.cnf,关闭 log_bin 日志。

2、导出数据库 sql:time mysqldump -q -uroot -p'dpENoKNhG#y0w4sK' --max_allowed_packet=128M --net_buffer_length=16M -e --all-databases > XXXX.sql

3、删除 mysql 的 data 日志

通过命令:show variables like'datadir',找到data目录

或者通过vim/etc/my.cnf-->找到里面的datadir的值,找到data目录

4、重新导入表空间:mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/data/mysql --default-storage-engine=INNODB&

5、重新开启 lob_bin 日志

注意:在执行第二步的时候可能会报错

报错:Error: Table "mysql"."innodb_index_stats" not found。如下是解决方法

显示有几个系统表不存在.

innodb_table_stats

innodb_index_stats

或者

slave_master_info

slave_relay_log_info

slave_worker_info

这是因为数据库初始化的时候,dba可能删除过ibdata1文件

虽然重启之后,数据库会自动创建一个ibdata1文件,因为是innodb引擎,所以不能访问了.

解决的方法如下:

删除上述系统表

drop table mysql.innodb_index_stats;

drop table mysql.innodb_table_stats;

drop table mysql.slave_master_info;

drop table mysql.slave_relay_log_info;

drop table mysql.slave_worker_info;

删除相关的.frm.ibd文件

rm-rf innodb_index_stats*

rm-rf innodb_table_stats*

rm-rf slave_master_info*

rm-rf slave_relay_log_info*

rm-rf slave_worker_info*

重新创建上述系统表

CREATE TABLE`innodb_index_stats`(

`database_name`varchar(64)COLLATE utf8_bin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值