Aby zaktualizować ten post, jeśli ktoś kiedykolwiek się z tym natknie, InnoDB obsługuje teraz katalog danych od wersji 5.6. Brak dowiązania symbolicznego (niezalecane) i działa zarówno dla *nix, jak i Windows.
Wymagania:
- MySQL 5.6 i nowsze
- innodb_file_per_table jest włączony
innodb_file_per_table = 1
Scenariusz 1 (utwórz nowe tabele):
Jest to tak proste, jak określenie opcji DATA DIRECTORY podczas tworzenia tabeli.
CREATE TABLE t1 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/alternative/directory';
Scenariusz 2 (przenoszenie istniejącej tabeli na oddzielny dysk):
Wymaga to jeszcze kilku kroków (wymagane jest ponowne uruchomienie serwera MySQL), ale nadal jest całkiem proste. I nie wymaga, aby podczas tworzenia tabeli była określona opcja DATA DIRECTORY.
- Zatrzymaj serwer MySQL
- Przenieś tabelę innodb nazwa_tabeli plik .ibd do oddzielenia dysku/woluminu przez proste kopiowanie/przenoszenie pliku
- Utwórz plik tekstowy z rozszerzeniem .isl, np. nazwa_tabeli .isl
- Edytuj plik .isl i wpisz nową ścieżkę do nazwa_tabeli Przeniesiony plik .ibd.
/alternative/directory/table_name.ibd
- Upewnij się, że oryginalny plik .ibd w starej ścieżce został usunięty
- Uruchom serwer MySQL
Teraz kolejne zmiany w przenoszonej tabeli będą zapisywane do pliku .ibd w nowej ścieżce.
Aby uzyskać więcej informacji, zapoznaj się z oficjalnym dokumentem MySQL:http:// dev.mysql.com/doc/refman/5.6/en/tablespace-placing.html