问题描述
业务系统正常运行,没有进行任何发布升级操作,在某个时间点有业务侧反馈,界面查询分页列表一直在加载中,无法查询出数据。
1
| ERROR 126 (HY000): Incorrect key file for table '/tmp/#sql_1d87_0.MYI'; try to repair it
|
分析问题
通过现象观察:/tmp/**为mysql临时文件,存在两种可能:
1、文件丢失被删除
一般为人工手动删除
2、文件创建失败或无法创建
一般为磁盘空间不足没有空闲磁盘可创建新文件。
解决办法
1、查看系统主机的磁盘是否已满或基本没可使用空间
linux下执行 df -h
命令查看。
1 2 3 4 5 6
| Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 5.3G 5.0G 50M 100% / /dev/sda1 99M 12M 83M 13% /boot tmpfs 125M 0 125M 0% /dev/shm /dev/sdb1 7.7G 183M 7.2G 3% /data
|
从上面看确实是空间满了。
2、查看mysql数据目录的文件位置
show variables like '%dir%';
,结果为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| +-----------------------------------------+------------------------------------+ | Variable_name | Value | +-----------------------------------------+------------------------------------+ | basedir | /usr/local/mysql | | binlog_direct_non_transactional_updates | OFF | | character_sets_dir | /usr/local/mysql/share/charsets/ | | datadir | /usr/local/mysql/data/ | | innodb_data_home_dir | /data/mysql/data | | innodb_log_group_home_dir | /data/mysql/data | | innodb_max_dirty_pages_pct | 75 | | lc_messages_dir | /usr/local/mysql/share/ | | plugin_dir | /usr/local/mysql/lib/mysql/plugin/ | | slave_load_tmpdir | /tmp | | tmpdir | /tmp | +-----------------------------------------+------------------------------------+ 11 rows in set (0.01 sec)
|
从上面看安装的MYSQL目录为默认的系统盘下,一般服务器买的阿里云或腾讯云,最好把MYSQL的临时目录和BINLOG目录指向到其他挂载盘。
另外需排查BINLOG日志是否开启,BINLOG日志默认设置的保存多长时间。
3、查看是否开启BINLOG日志
1 2 3 4 5 6 7
| show variables like 'log_bin';
+------------------+------------+ | Variable_name | Value | +------------------+------------+ | log_bin | ON | +------------------+------------+
|
4、查看默认的日志保存天数
根据实际磁盘大小设置保留天数。
1 2 3 4 5 6 7
| mysql> show variables like '%expire_logs_days%';
+------------------+------------+ | Variable_name | Value | +------------------+------------+ | expire_logs_days | 5 | +------------------+------------+
|
5、设置自动清理
1 2 3
| mysql> set global expire_logs_days = 5;
mysql> flush logs;
|
其他binlog更多的请参考之前发布的《mysql清理binlog日志》技术文章。