由於空間不足導致Mysql無法啟動
昨天又遇到了mysql資料庫無法重啟的問題,還以為是上次許可權的原因,看了下mysql的錯誤日誌:
111202 10:05:57 mysqld restarted
111202 10:05:57 [ERROR] /usr/local/mysql5/libexec/mysqld: Error writing file '/usr/local/mysql5_database/sqwl-dev.pid' (Errcode: 28)
111202 10:05:57 [ERROR] Can't start server: can't create PID file: No space left on device
是磁碟空間不足導致的,檢視下磁碟空間佔用情況
[root@sqwl-dev /]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 2.0G 432M 1.5G 23% /
/dev/sda7 21G 868M 19G 5% /home
/dev/sda5 3.9G 3.8G 0 100% /usr
/dev/sda3 3.9G 119M 3.6G 4% /var
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 1006M 0 1006M 0% /dev/shm
發現/usr下已經沒有空間了,我把apache下的access_log和error_log刪除了,還有mysql-database下面的sqwl-dev.err也刪除了,然後重新啟動了linux,mysql正常啟動,此時再df一下,usr的可用空間有14M了,也所剩無幾了。看來還得找找大的檔案
在/usr下用find -size +100000000c的命令查詢下大於100M的檔案,木有。。。再查下大於30M的檔案,一堆,都是我備份的程式檔案擠佔了不少的地方,把這些備份檔案都挪走了後,發現可用空間已經提高到了79%,悔當初真不應該都放在/usr下面啊,僅僅有4G的空間,好窄。。。
在解決這個問題的時候我在社群中還專門發了一個帖子,我覺得的方法值得一試,他是這樣說的 :
1. 如果沒有使用獨立空間,則需要做匯出匯入操作進行空間釋放
2. sad5空間太小啦,你是自己測試用的庫嗎?不是的話,建議換到大點的盤上
3. 更換操作有兩個選擇:
3.1 目錄轉移,同時mysql配置檔案也修改指向新目錄
3.2 目錄轉移,在原位置做一個軟連結,這樣就不需要更改其它的配置資訊
現在先吃飯,吃完飯再來試試軟連線的方法
吃完飯,又弄了下linux的定時檔案,使得不需要的Log在每月的1號和15號清空
在root/scripts下建立了一個檔案delete_log.sh檔案,檔案內容是
#!/bin/sh
#this file delete apache log and mysql log
rm /usr/local/apache/logs/access_log
rm /usr/local/apache/logs/error_log
touch /usr/local/apache/logs/access_log
touch /usr/local/apache/logs/error_log
查了下第一行中 符號#!用來告訴系統它後面的引數是用來執行該檔案的程式。
然後建立一個定時檔案
crontab -e
編輯這個檔案05 16 * * * /root/scripts/delete_log.sh測試了下,可以通過:)
下面補充下crontab的知識
基本格式 :
* * * * * command
分 時 日 月 周 命令
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要執行的命令