Info Node: (mysql.info)Symbolic links to databases
(mysql.info)Symbolic links to databases
Using Symbolic Links for Databases
..................................
The way to symlink a database is to first create a directory on some
disk where you have free space and then create a symlink to it from the
MySQL database directory.
shell> mkdir /dr1/databases/test
shell> ln -s /dr1/databases/test mysqld-datadir
MySQL doesn't support that you link one directory to multiple
databases. Replacing a database directory with a symbolic link will
work fine as long as you don't make a symbolic link between databases.
Suppose you have a database `db1' under the MySQL data directory, and
then make a symlink `db2' that points to `db1':
shell> cd /path/to/datadir
shell> ln -s db1 db2
Now, for any table `tbl_a' in `db1', there also appears to be a table
`tbl_a' in `db2'. If one thread updates `db1.tbl_a' and another thread
updates `db2.tbl_a', there will be problems.
If you really need this, you must change the following code in
`mysys/mf_format.c':
if (flag & 32 || (!lstat(to,&stat_buff) && S_ISLNK(stat_buff.st_mode)))
to
if (1)
On Windows you can use internal symbolic links to directories by
compiling MySQL with `-DUSE_SYMDIR'. This allows you to put different
databases on different disks. Note:Windows symbolic links.