No Unix, a maneira de ligar simbolicamente um banco de dados é, primeiramente, criar um diretório em algum disco onde você possui espaço livre e então criar uma ligação simbólica para ele a partir do diretório do banco de dados do MySQL.
shell>mkdir /dr1/databases/test
shell>ln -s /dr1/databases/test mysqld-datadir
O MySQL não suporta que você ligue um diretório a vários
bancos de dados. Trocando um diretório de banco de dados com
uma ligação simbólica irá funcionar bem desde que não
sejam feitos links simbólicos entre os bancos de dados.
Suponha que você tenha um banco de dados
db1
sob o diretório de dados do MySQL, e
então criar uma ligação simbólica db2
que aponte para db1
.
shell>cd /caminho/para/diretorio/dados
shell>ln -s db1 db2
Agora, para qualquer tabela tbl_a
em
db1
, também aparecerá uma tabela
tbl_a
em db2
. Se uma
thread atualizar db1.tbl_a
e outra
atualizar db2.tbl_a
, ocorrerão porblemas.
Se você realmente precisar disto, você deve alterar o
código seguinte em mysys/mf_format.c
:
if (flag & 32 || (!lstat(to,&stat_buff) && S_ISLNK(stat_buff.st_mode)))
para
if (1)
No Windows você pode utilizar links simbólicos para
diretórios compilando o MySQL com
-DUSE_SYMDIR
. Isto lhe permite colocar
diferentes bancos de dados em discos diferentes. See
Secção 5.6.1.3, “Usando Links Simbólicos para Bancos de Dados no Windows”.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.