Time to move my mysql data directory to another drive. So its up to some simple commands to get me started.
First my my.conf file.
$ sudo mv /etc/mysql/my.cnf /home/configs
$ sudo ln -s /home/configs/my.cnf /etc/mysql/
I should note that the way I installed mysql (apt-get), a debian.cnf file is created. I haven’t even bothered to see if this file is actually used by ubuntu. But none the less I need to copy it as it contains a mysql user/password for use by the system. Which isn’t really safe considering it is a root account. Setting open_basedir restrictions help with that though. As well in the mysql.conf folder a mysqld_safe_syslog.conf file exists, I don’t use safe mode so I don’t care about it.
$ sudo mv /etc/mysql/debian.cnf /home/configs
$ sudo ln -s /home/configs/debian.cnf /etc/mysql/
Now for a quick test, I restarted mysql via the restart command. Very helpful command and is easier to type then using init.d
$ restart mysql
Everything still works. So now for the final touch. Moving the directory.
$ service mysql stop
$ mv /var/lib/mysql /home/data
$ ln -s /home/data/mysql /var/lib
$ service mysql start
Now I won’t lie, at this point something went horribly wrong. I have yet to figure out why. I have done this many times before and never had an issue. After trying everything I could think of to get mysql started, get rid of the errors and even moving it back, I still had no luck. I ended up restarting the entire box and after that things just worked. So I tried again and then everything worked just fine the second time around. I have no clue why it failed the first time.
Just to add a finishing touch, I edited the /home/configs/my.cnf and changed datadir in it to point to /home/data/conf
That takes care of that. Next is to figure out all the configuration files I need to duplicate over for my mail setup. Hopefully after all that, my web site should be able to easily switch from ubuntu to another operating system and be up and running in no time.