最近遇到mysql数据库报错:ERROR 1030 (HY000): Got error 28 from storage engine的问题,这个问题是由于Mysql临时空间目录下可以空间不足造成的,折腾了好久,现在记录一下完整过程
1)查看Mysql临时空间目录
命令行连接Mysql后执行以下命令:
show variables like '%dir%';
出现以下界面:
basedir | /usr/local/mysql |
| binlog_direct_non_transactional_updates | OFF |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
| datadir | /xx/mysql/var/ |
| innodb_data_home_dir | /xxG/msql/var |
| innodb_log_group_home_dir | /xx/mysql/var |
| innodb_max_dirty_pages_pct | 75 |
| lc_messages_dir | /usr/local/mysql/share/ |
| plugin_dir | /usr/local/mysql/lib/plugin/ |
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp
其中“tmpdir”代表Mysql的临时空间目录,在上文中可以看出Mysql的临时空间目录是/tmp
2)查看临时空间目录下可用空间
执行以下代码:
du -sh /tmp
会显示出临时空间目录下剩余空间(我的空间只剩8.5M。。。)
3)修改临时空间目录
(1)停止Mysql服务
service mysql stop
还有其他几种停止Mysql服务的方法,但是这种方法最快。
(2)修改mysql配置文件
在/etc/my.conf文件中修改目录,添加以下一行
tmpdir = /xx/tmp
同时我修改了/etc/my.conf文件中的datadir路径,使其指向可用空间充足的目录
(3)启动Mysql服务
service mysql start
参考:https://blog.youkuaiyun.com/weixin_33717117/article/details/91638731