导航

linux下mysql数据文件磁盘满

Posted on 2013-03-01 12:24  C'est la vie  阅读(5573)  评论(0编辑  收藏  举报

操作系统:CentOS 6.2

现象:mysql无法启动

查找问题发现:存放mysql数据分区100%

[root@jinniu-test3 mysql]# df -h
文件系统              容量  已用  可用 已用%% 挂载点
/dev/sda2              49G   49G  20K  100% /
tmpfs                 933M     0  933M   0% /dev/shm
/dev/sda1             194M   31M  153M  17% /boot
/dev/sda5             219G  701M  207G   1% /opt

检查/etc/my.cnf,数据文件默认存放于/var/lib/mysql下

确认此文件夹确实过大

解决方案:转移存放目录,修改my.cnf或者软连接回来

[root@-_- ~]# cp -Rp /var/lib/mysql /opt/     --带权限拷贝整个目录

修改/etc/my.cnf配置datadir=/opt/mysql指向新位置

重启mysql发现无法启动

[root@-_- ~]# service mysqld start
MySQL Daemon failed to start.
正在启动 mysqld:                                          [失败]

检查/var/log/mysqld.log文件最后

[root@-_- ~]# tail -20 /var/log/mysqld.log
...
130301 11:52:05 [Warning] Can't create test file /opt/mysql/-_-.lower-test
130301 11:52:05 [Warning] Can't create test file /opt/mysql/-_-.lower-test
...

网络搜索问题得知是这台机器启用SElinux 安全策略引起的

使用命令可以解决

[root@-_- ~]# chcon -R -t mysqld_db_t /opt/mysql

实在不行,禁用SElinux

执行:setenforce 0