最近遇到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.csdn.net/weixin_33717117/article/details/91638731

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐