Для создания символической ссылки для базы данных вначале следует создать каталог на некотором диске, где имеется свободное место, а затем создать символическую ссылку на него из каталога баз данных MySQL.
shell> mkdir /dr1/databases/test shell> ln -s /dr1/databases/test mysqld-datadir
MySQL не поддерживает ссылку из одного каталога на несколько баз данных.
Замещение каталога базы данных символической ссылкой будет хорошо работать
только в случае, если вы не создаете символическую ссылку между базами
данных. Предположим, имеется база данных db1
в каталоге данных MySQL и
создается символическая ссылка db2
, указывающая на db1
:
shell> cd /path/to/datadir shell> ln -s db1 db2
Теперь для любой таблицы tbl_a
в db1
должна существовать таблица tbl_a
в
db2
. Если один поток обновляет db1.tbl_a
, а другой поток - db2.tbl_a
, то
возникнут проблемы.
Если описанная выше возможность действительно необходима, то нужно
изменить следующий код в mysys/mf_format.c
:
if (flag & 32 || (!lstat(to,&stat_buff) && S_ISLNK(stat_buff.st_mode)))
на
if (1)
Под Windows можно использовать внутренние символические ссылки на каталоги
(путем компиляции MySQL с -DUSE_SYMDIR
). Это позволяет размещать различные
базы данных на различных дисках (see Раздел 2.6.2.5, «Распределение данных в Windows между несколькими различными дисками»).