Add to Favourites Add to Favourites    Print this Article Print this Article

/var is full

If you have a /var partition, and if that partition is too small it may fill up quickly.  If you want to move the data which is stored in "/var" to another partition, run the following:

cd /var
du | sort -n

This will give you a full readout of all the directories that are using the most space.  The directory using the most disk space will appear at the bottom of the list.

One common culprit is mysql (/var/lib/mysql on Redhat).  To move that path to another partition, run the following:

cd /home
mkdir mysql
chown mysql:mysql mysql
cd mysql

perl -pi -e 's/mysqld=ON/mysqld=OFF/' /usr/local/directadmin/data/admin/services.status
/sbin/service mysqld stop

cp -Rp /var/lib/mysql/* .
cd /var/lib
mv mysql mysql_old
ln -s /home/mysql ./mysql

/sbin/service mysqld start
perl -pi -e 's/mysqld=OFF/mysqld=ON/' /usr/local/directadmin/data/admin/services.status

#once satisfied that mysqld is running and functioning correctly, remove the old data:

rm -rf mysql_old

You can also specify a new socket path in the file:

/usr/local/directadmin/conf/mysql.conf

if you want, but shouldn't be required if you've correctly created the symbolic link with the above "ln -s" command.

Note, if you run into the error

[Warning] Can't create test file /home/mysql/server.lower-test

after you've moved it to /home, check the given processes mariadb.service or mysqld.service file for:

ProtectHome=true

and change this to false.

Was this answer helpful?

Also Read