MySQL 崩溃但无法运行

MySQL 崩溃但无法运行

Mysql 正在运行,但是使用 phpmyadmin 时没有响应,当我检查 mysqld.log 时它显示:

[root@dc /]# tail /var/log/mysqld.log
151111  8:58:21 [Note] /usr/libexec/mysqld (mysqld 5.5.46) starting as         process 27664 ...
151111  8:58:21 [Note] Plugin 'FEDERATED' is disabled.
151111  8:58:21 InnoDB: The InnoDB memory heap is disabled
151111  8:58:21 InnoDB: Mutexes and rw_locks use GCC atomic builtins
151111  8:58:21 InnoDB: Compressed tables use zlib 1.2.3
151111  8:58:21 InnoDB: Using Linux native AIO
151111  8:58:21 InnoDB: Initializing buffer pool, size = 128.0M
151111  8:58:21 InnoDB: Completed initialization of buffer pool
151111  8:58:21 InnoDB: highest supported file format is Barracuda.
151111  8:58:22  InnoDB: Waiting for the background threads to start

当我检查磁盘使用情况时,我发现磁盘已满

[root@dc ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           20G   19G     0 100% /
/dev/root        20G   19G     0 100% /
devtmpfs         32G  508K   32G   1% /dev
/dev/md3        1.8T   68M  1.7T   1% /home
tmpfs            32G     0   32G   0% /dev/shm
/dev/root        20G   19G     0 100% /var/named/chroot/etc/named
/dev/root        20G   19G     0 100% /var/named/chroot/var/named
/dev/root        20G   19G     0 100% /var/named/chroot/etc/named.conf
/dev/root        20G   19G     0 100%            
/var/named/chroot/etc/named.rfc1912.zones
/dev/root        20G   19G     0 100% /var/named/chroot/etc/rndc.key
/dev/root        20G   19G     0 100% /var/named/chroot/usr/lib64/bind
/dev/root        20G   19G     0 100% /var/named/chroot/etc/named.iscdlv.key
/dev/root        20G   19G     0 100% /var/named/chroot/etc/named.root.key

答案1

您没有指定但可能想要的是调查占用了空间的内容,然后有选择地删除文件。

我倾向于通过查找超过一定大小的文件来做到这一点,从 100mb 这样的大文件开始:

find / -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

您可能还需要查看 logrotate 和 monit 之类的监控解决方案,以确保下次当其占用率达到 85% 时收到警告。

获取更多信息后进行编辑:

您的 MySQL 数据库大小超过 17GB。它位于一个大小为 20GB 的分区上。因此它已满。

您有一个几乎为空的 1.8 TB 分区:

/dev/md3 1.8T 68M 1.7T 1% /home

我建议将 MySQL DB 文件移动(或许先复制)到那里。这不能只用 mv 来完成,因此在执行此操作之前,请先了解正确的步骤。

就像“我的磁盘已满”一样,将 MySQL DB 移动到另一个磁盘或分区的问题也已经被解释过很多次了:

https://askubuntu.com/questions/224/how-to-i-move-mysql-data-files-onto-different-partition

如何将 Mysql 数据库移动/配置到另一个分区?

答案2

尝试这个:

cd /
du -ks ./* | sort -n

了解大部分空间都用在了哪里。然后您可以深入研究以找到可以安全删除的内容,从而释放空间。

相关内容