GNU Info

Info Node: (mysql.info)Symbolic links to databases

(mysql.info)Symbolic links to databases


Next: Symbolic links to tables Prev: Symbolic links Up: Symbolic links
Enter node , (file) or (file)node

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.


automatically generated by info2www version 1.2.2.9