无法以 root 身份创建新目录或 mysql 表-配额错误?

无法以 root 身份创建新目录或 mysql 表-配额错误?

我最近将 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 日志轮换从每周改为每日,希望这会有所帮助

相关内容