在linux上导出test.sql数据库时,出现了错误:ERROR 1030 (HY000): Got error 28 from storage engine。后来查了下这个是因为mysql默认的临时目录空间不足,导致无法执行此sql语句:

命令行执行下: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

可以看出mysql当前的临时目录为/tmp,然后df -hl或du -sh /tmp查看该目录是否还有空间,结果的确是空间不足了,所以修改配置文件/etc/my.cnf,在【mysqld】下添加tmpdir = /xx/tmp。保存,重启,再次导出不是问题了。

注意:有时修改配置文件,比如/etc/my.cnf,wq保存时会提示 E514: write error (file system full?),有可能/etc/所在的目录的磁盘空间也没了。