我最近将 ubuntu 14 框更新到版本 16.04。一切似乎都很顺利,但是现在我无法创建任何新的 mysql 表。
我以 root 身份登录 ubuntu 框,并以 root 用户身份登录 mysql。尝试创建任何表时收到的错误是:
ERROR 1005 (HY000): Can't create table 'foo' (errno: 122)
我做了一些调查,并认为这是一个磁盘配额错误。虽然我了解 mysql 和一些基本的 web 服务器,但我并不是 ubuntu 管理方面的专家。我运行后,quota
它返回
Disk quotas for user root (uid 0): none
有人能告诉我该怎么做才能解决这个问题吗?谢谢
根据评论,我检查了我的系统日志,发现
../../../../lib/isc/unix/file.c:347: unexpected error:
unable to convert errno to isc_result: 122: Disk quota exceeded
dumping master file: tmp-jaCquXzkj6: open: unexpected error
CRON[32105]: (CRON) error (create tmpfile)
CRON[32104]: (CRON) error (create tmpfile)
更新 即使在创建简单的表时也会发生这种情况,例如
create table foo(id int);
但我还注意到,我在尝试创建目录时遇到了配额错误,例如
mkdir test
mkdir: cannot create directory 'test': Disk quota exceeded
我运行了该df
命令并得到了以下输出
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vzfs 50000000 6390516 43609484 13% /
devtmpfs 1048576 0 1048576 0% /dev
tmpfs 1048576 0 1048576 0% /dev/shm
tmpfs 1048576 102008 946568 10% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 1048576 0 1048576 0% /sys/fs/cgroup
none 1048576 0 1048576 0% /run/shm
tmpfs 209716 0 209716 0% /run/user/0
df -hi 显示
df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vzfs 245K 245K 0 100% /
devtmpfs 256K 56 256K 1% /dev
tmpfs 256K 1 256K 1% /dev/shm
tmpfs 256K 411 256K 1% /run
tmpfs 256K 7 256K 1% /run/lock
tmpfs 256K 10 256K 1% /sys/fs/cgroup
none 256K 1 256K 1% /run/shm
tmpfs 256K 4 256K 1% /run/user/0
和配额 -v
Disk quotas for user root (uid 0):
Filesystem blocks quota limit grace files quota limit grace
/dev/vzfs 5781580 0 0 218669 0 0
然后我删除了一个 tar.gz 文件,现在df -i
显示
文件系统 Inodes IUsed IFree IUse% 挂载于
/dev/vzfs 18446744069926773888 18446744069414834326 511939562 100% /
devtmpfs 262144 56 262088 1% /dev
tmpfs 262144 1 262143 1% /dev/shm
tmpfs 262144 410 261734 1% /run
tmpfs 262144 7 262137 1% /run/lock
tmpfs 262144 10 262134 1% /sys/fs/cgroup
none 262144 1 262143 1% /run/shm
tmpfs 262144 4 262140 1% /run/user/0
有人能解释一下发生了什么吗?我该如何解决这个问题?机器有足够的剩余空间,但由于某种原因,配额已满,而且我对 inode 了解不够,不知道如何解决这个问题,并阻止自己将来遇到此错误(物理磁盘空间允许的情况下)
* 编辑2 *
好的,经过一番搜索,我终于找到了这个命令du --inodes -d 3 / | sort -n | tail
结果如下
13136 /usr/lib
20145 /proc
26549 /usr/local/lib
29989 /usr/share
30239 /usr/local
78892 /usr
127929 /var/log/samba
128235 /var/log
145269 /var
259479 /
samba 似乎占用了大量空间,但还有其他异常吗?我删除了大量节点网站,其中 node_modules 显然占用了相当多的空间,但仍然不够。我想知道更新是否导致了大量冗余的旧包,尽管 apt-get remove 并没有清除太多。
我已将 Samba 日志轮换从每周改为每日,希望这会有所帮助