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