How to move MySQL data directory var-lib on CloudLinux + CPanel Apache Server to Home Directory

Here are the steps to move mysql data directory to home directory

ln -s /home/var_mysql/mysql /var/lib/mysql
Additionally, please always create a full mysqldump before ever doing something like this as well as stopping Service Manager > MySQL monitor option, since that will restart MySQL after you've stopped it and while you are moving it. The better steps are these:

1. Make a full mysqldump file:

mysqldump --all-databases | gzip > /home/alldatabases.sql.gz
2. Uncheck monitor in WHM > Service Manager for Mysql and save the area

3. Stop MySQL

/etc/init.d/mysql stop
4. Make the directory for MySQL in /home, move it and symlink it:

mkdir /home/var_mysql
mv /var/lib/mysql /home/var_mysql
chown -R mysql:mysql /home/var_mysql/mysql
ln -s /home/var_mysql/mysql /var/lib/mysql
/etc/init.d/mysql start
5. Re-check monitor in WHM > Service Manager for MySQL and save the area

If anything goes wrong, you have the full mysqldump backup, and can use these steps to restore from it:

First, you'll need the MySQL root password:

cat /root/.my.cnf
Once you have the password, then you can use this command to restore from that file:

gunzip < /home/alldatabases.sql.gz | mysql -u root -p
You'll be asked for the password here, so simply enter the one noted in /root/.my.cnf location.

After you are done with this movement. Restart CageFS as localhost won't work and will work if you don't do so. 

You might need to remove users from CageFS and re-enable them.

Post a Comment