操作系统: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