mysql5.7 ibtmp1文件过大

接到了一台 MySQL5.7服务器磁盘空间不足的报警,该业务的数据量20G的样子,是什么造成磁盘空间不足呢?

经过排查后发现,数据目录下面有一个ibtmp1的文件特别大,有949G 。

1
2
# du -sh ibtmp1 
949G    ibtmp1


ibtmp1是个什么东西呢?查看官方文档后发现这是非压缩的innodb临时表的独立表空间。通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,也就是说在支持大文件的系统这个文件大小是可以无限增长的。

解决办法:

1,修改my.cnf配置文件:

innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G

2,设置innodb_fast_shutdown参数

SET GLOBAL innodb_fast_shutdown = 0;  #InnoDB does a slow shutdown, a full purge and a change buffer merge before shutting down

3,关闭mysql服务

4,删除ibtmp1文件

5,启动mysql服务


注意:为了避免以后再出现类似的情况,一定要在限制临时表空间的最大值,如innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G



本文转自 emma_cql 51CTO博客,原文链接:http://blog.51cto.com/chenql/1946992
<think>我们正在寻找Ubuntu 18.04上MySQL 5.7的默认配置文件位置及内容。 根据引用[1]中的信息,在修改MySQL数据存储路径时,提到了修改`mysqld.cnf`文件。引用[1]中有一句:“8.3、修改mysqld.cnf指定data路径”。这暗示了配置文件可能是`mysqld.cnf`,并且它通常位于`/etc/mysql/mysql.conf.d/`目录下(这是常见的路径,但具体需要确认)。 另外,根据MySQL的常规安装,在Ubuntu系统中,MySQL 5.7的配置文件通常位于: - 主配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf - 或者,也可能有一个/etc/mysql/my.cnf文件,但该文件可能包含指向其他配置文件的指令。 在Ubuntu中,MySQL配置通常被分割到多个文件中,其中`mysqld.cnf`是包含主要服务器配置的文件。 因此,我们可以告诉用户: 默认配置文件位置:/etc/mysql/mysql.conf.d/mysqld.cnf 同时,我们也可以查看其他可能的配置文件位置,如/etc/mysql/my.cnf,但该文件通常只是包含一些include指令,将配置指向其他目录。 为了验证,我们可以查看引用中提到的内容,但引用中没有直接给出路径。不过,根据经验,我们可以这样回答。 另外,用户可能还想知道配置文件的内容,我们可以简要描述一下默认配置文件中的一些重要部分,比如: - datadir: 默认是/var/lib/mysql - bind-address: 默认为127.0.0.1 - port: 默认3306 但是,由于用户没有要求内容,只要求位置,我们可以先给出位置,然后如果需要内容,可以提示用户使用cat命令查看。 根据引用[1]中提到的修改数据存储路径,我们也可以确认修改的是`mysqld.cnf`文件中的`datadir`选项。 因此,回答如下:</think>在 Ubuntu 18.04 系统中,MySQL 5.7 的默认配置文件位置及结构如下: ### 配置文件位置 1. **主配置文件路径** `/etc/mysql/mysql.conf.d/mysqld.cnf` 这是 MySQL 5.7 的核心配置文件,包含服务器的主要设置(如端口、数据目录、日志文件等)。 2. **补充配置文件** - `/etc/mysql/my.cnf`:全局配置文件,通常通过 `!includedir` 指令加载其他目录 - `/etc/mysql/conf.d/`:存放额外配置的目录(如自定义配置可放在此) - `/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf`:日志相关配置 ### 关键配置内容(默认) 打开 `/etc/mysql/mysql.conf.d/mysqld.cnf` 可看到以下重要参数: ```ini [mysqld] user = mysql bind-address = 127.0.0.1 # 监听地址 port = 3306 # 默认端口 datadir = /var/lib/mysql # 数据存储路径[^1] log_error = /var/log/mysql/error.log pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock ``` ### 验证配置路径 1. 通过 MySQL 命令查询: ```sql SHOW VARIABLES LIKE '%config%'; ``` 输出示例: ``` +--------------------------+-------------------------------------+ | Variable_name | Value | +--------------------------+-------------------------------------+ | innodb_temp_data_file_path | ibtmp1:12M:autoextend | | slave_load_tmpdir | /var/tmp | | tmpdir | /tmp | | lc_messages_dir | /usr/share/mysql-5.7 | | datadir | /var/lib/mysql/ | [^1] +--------------------------+-------------------------------------+ ``` 2. 检查加载顺序: ```bash mysql --verbose --help | grep -A1 "Default options" ``` 输出将显示配置文件加载优先级(通常为 `/etc/my.cnf` → `/etc/mysql/my.cnf` → `~/.my.cnf`)。 ### 修改配置后需重启服务 ```bash sudo systemctl restart mysql # 重启生效 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值