mysql磁盘满

1. 查询二进制日志,并清除

mysql二进制日志 - 81 - 博客园 (cnblogs.com)

可配置日志保留时间,如下:

mysql>show variables like '%expire_logs_days%'--mysql 5.7

mysql> show variables like '%binlog_expire_logs_seconds%'  --mysql8.0
可修改配置文件,让日志文件放到别处
 

2. 错误日志清除

步骤一 查看error日志位置

mysql>show variables like 'log_error';
步骤二 查看error日志大小
[root@mysqlhost01 data]# ll -h log.err
步骤三 清空error日志
echo "" > /usr/local/mysql57/mysql5730/data/log.err

3. 大表的表碎片清理

查看碎片

select table_schema,table_name,

concat(round((data_length+index_length)/1024/1024/1024,2),'G') as tablesize_gb,
table_rows from information_schema.tables
order by tablesize_gb desc limit 5;
整理碎片 optimize table table.name
或重建表,会触发整理整理位置 alter table table_name engine=innodb;
 
 
5.临时表空间
ibtmp1这个文件,可修改配置,使临时表空间文件放到别处
 
6. 把表内容放到其他位置

InnoDB指定数据文件的位置

mysql> SHOW VARIABLES LIKE 'innodb_file_per_table';    #先检查一下配置变量
如果innodb_file_per_table值为OFF,可以动态修改:

set global innodb_file_per_table=1;

 

创建表,并指定位置

CREATE TABLE temp3
(empno smallint(4) not null,
 ) engine=innodb charset=utf8 data directory='/u01/mysql/temp/';(在windows平台目录分割用/)

 
 
posted @ 2022-07-27 10:22  81  阅读(53)  评论(0编辑  收藏  举报