Moving MySQL database
Jerry McAllister
jerrymc at clunix.cl.msu.edu
Fri Sep 3 07:46:52 PDT 2004
>
> I have a server that is rapidly filling the var partition with a MySQL
> database. I'd like to move it to a subdirectory somewhere under /usr.
>
> Is there a document that would outline a "best practices" approach to
> doing this? My first instinct was to stop the mysqld, do a mv on
> /var/db to /var/db2 to rename it, copy the data to a /usr/local/db
> folder and alter permissions on it to match /var/db, then make a
> softlink between /usr/local/db and /var/db and restart mysqld so mysqld
> wouldn't need any reconfiguring and everything, I would *think*, should
> keep working...only now it will be working off a far more spacious
> partition.
presuming /usr is actually a good place for it (may really want to add a
disk and make a really different partition)
First stop MySQL or reboot to single user.
Then
cd /var/db
tar cf /usr/db.tar *
cd /usr
mkdir var.db
cd var.db
tar xf ../db.tar
cd /var
mv db db.old
ln -s /usr/var.db db
Now, reboot and let MySQL start and make sure it all is happy and
works just fine.
Then clean up.
cd /usr
rm db.tar
cd /var
rm -rf db.old
It should now work using the space in /usr
You can use any names you like for db.tar, var.db, db.old. Those
just make sense to me and are the style I use.
If you don't want to move all the stuff in /var/db, then you will
have to be more selective and make the link from within /var/db
rather than just the whole db directory from within /var.
For example, the MySQL stuff is likely to all be in a directory
called /var/db/mysql. So:
Stop MySQL or reboot to single user.
Then
cd /var/db/mysql
tar cf /usr/mysql.tar *
cd /usr
mkdir var.db.mysql
cd var.db.mysql
tar xf ../../mysql.tar
cd /var/db
mv mysql mysql.old
ln -s /usr/var.db.mysql mysql
Now, reboot and let MySQL start and make sure it all is happy and
works just fine.
Then clean up.
cd /usr
rm mysql.tar
cd /var/db
rm -rf mysql.old
////jerry
>
> Thanks,
> -Bart
>
More information about the freebsd-questions
mailing list