Używam MySQL 5.5 na komputerze lokalnym do analizy dużej ilości danych rządowych. Utworzyłem lokalną bazę danych, która znajduje się na moim domyślnym dysku (Win7 C: dysk). Chciałbym przechowywać dane na moim dysku E: dużym zewnętrznym dysku eSATA.
Jakie kroki powinienem podjąć?
Odpowiedzi:
datadir
parametr).my.ini
plik (znajduje się on w katalogu instalacyjnym mysql). Zmieńdatadir
wartość parametru, aby wskazywała nową lokalizację.źródło
/
a nie \ jako separatorów katalogów w ścieżce katalogudatadir
. Używam WAMPserver na Windows 10.Chociaż pytasz o okna, oto kilka dobrych wskazówek dla tych, którzy kończą tutaj szukając wskazówek dla Linuksa / Ubuntu:
Założenia:
/mountpoint/var/lib/mysql
, być może z komputera, który zmarł lub starej instalacji/var/lib/mysql
Źródło [email protected]
źródło
Rozwiązanie 1:
Drugie rozwiązanie (niezalecane, ale działa na tym samym komputerze)
Od wersji 5.6 MySQLInstanceConfig.exe nie jest już rozpowszechniany. Ta funkcja jest zastępowana przez instalatora. http://bugs.mysql.com/bug.php?id=66306
źródło
[ERROR] Cannot find or open table <db>/<table> from the internal data dictionary of InnoDB though the .frm file for the table exists.
. Jak mogę się upewnić, że uprawnienia są ustawione poprawnie?W systemie Windows, począwszy od instalatora MySQL 1.4.6 (2015-04-07) , lokalizację danych można określić w kluczu rejestru, który określa lokalizację
my.ini
pliku, więc jeśli dane zostały początkowo zainstalowane w lokalizacji innej niż domyślnamy.ini
plik nie będzieC:\ProgramData\MySQL\MySQL Server x.x\
.Lokalizacjami wartości rejestru są (przynajmniej od MySQL 5.6):
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MySQL AB\MySQL Server x.x\
Location
oznacza plikREG_SZ
, w którym znajdują się pliki aplikacji MySQL; domyślnie:C:\Program Files\MySQL\MySQL Server x.x\
DataLocation
oznacza punktREG_SZ
, w którymmy.ini
znajduje się folder ; domyślnie także:C:\Program Files\MySQL\MySQL Server x.x\
my.ini
Ścieżka do pliku jest również zawarta w poleceniu service pod tym kluczem rejestru:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQLXX
wImagePath
REG_EXPAND_SZ
wartości.Domyślna wartość tego ciągu to:
"C:/Program Files/MySQL/MySQL Server 5.6/bin\mysqld" --defaults-file="C:\Program Files\MySQL\MySQL Server x.x\my.ini" MySQLXX
Więc sedno jest takie, że aby przenieść pliki danych w tym scenariuszu, musisz postępować zgodnie z krokami opublikowanymi przez @ITCuty z pewnymi dodatkami.
Oto pełne kroki:
DataLocation
wartość rejestru, aby znaleźć bieżącąmy.ini
lokalizację pliku, a jeśli chcesz również przenieśćmy.ini
plik, zaktualizujDataLocation
ścieżkę i przenieśmy.ini
plik do tej nowej ścieżki.my.ini
pliku, musisz zaktualizować ścieżkę w kluczu rejestru polecenia serwisowego wymienionym powyżej.my.ini
plik, zlokalizujdatadir
parametr. Przenieś pliki z tejdatadir
ścieżki do ścieżki, w której mają się znajdować dane, a następnie zaktualizujdatadir
parametr o tę nową ścieżkę.źródło