Powyższe nie rozwiązało problemu na Ubuntu 12.04 (Precyzyjne). Dowiedziałem się, że trzeba edytować plik /etc/apparmor.d/tunables/alias, aby zawierał wiersz „alias / var / lib / mysql / -> / newpath /”, „Po wprowadzeniu tego nie potrzebowałem żadnego zmiany w innych plikach AppArmor. Zadziałało natychmiast po ponownym uruchomieniu AppArmor z „/etc/init.d/apparmor restart” i MySQL z „restart mysql”.
na edycji mak (co jest konieczne) nie zapomnij o przecinku na końcu liniialias /var/lib/mysql/ -> /newpath/,
Michael
4
Nie mogę wystarczająco podkreślić, jak ważny jest powyższy komentarz Michela: DODAJ PRZECIĄGNIĘCIE PRZECIĄGNIĘCIA i uratuj kilka neuronów. Przepraszam za czapki.
alx
2
Nie działa na mnie. Otrzymuję zadanie dla mysql.service nie powiodło się. Zobacz „systemctl status mysql.service” i „journalctl -xn”, aby uzyskać szczegółowe informacje dotyczące próby ponownego uruchomienia mysqld, a błąd polega na tym, że dysk jest pełny. Ma 500 GB wolnego miejsca ...
Frank H.
17
Szybko i łatwo:
#Create new directory for MySQL data
mkdir /new/dir/for/mysql
#Set ownership of new directory tomatch existing one
chown --reference=/var/lib/mysql /new/dir/for/mysql#Set permissions on new directory tomatch existing one
chmod --reference=/var/lib/mysql /new/dir/for/mysql# Stop MySQL before copying over files
service mysql stop
# Copy all files indefault directory,to new one, retaining perms (-p)
cp -rp /var/lib/mysql/* /new/dir/for/mysql/
Edytuj /etc/my.cnfplik i [mysqld]dodaj ten wiersz:
datadir=/new/dir/for/mysql/
Jeśli używasz CageFS (z lub bez CloudLinux) i chcesz zmienić katalog MySQL, MUSISZ dodać nowy katalog do tego pliku:
Wielkie dzięki i aby dodać, jeśli chcesz całkowicie napisać skrypt, tak jak ja, możesz użyć tego: sed -i | datadir = / var / lib / mysql | datadir = / data / var / lib / mysql | g '/ etc / my.cnf
berimbolo
To nie zadziałało dla mnie. Próbowałem tego i wielu innych alternatyw. Dochodzę do tego samego wniosku, co user3338098, kiedy mówi, że to jedyny sposób, który działa: serverfault.com/questions/503887/…
Volksman
@Volksman wszystko, co ten link mówi, to to, że musiał usunąć i ponownie zainstalować ... prawdopodobnie oboje macie jakiś inny problem związany z serwerem, ponieważ zarówno MySQL, jak i MariaDB obsługują konfigurację datadir, a ja niedawno to zrobiłem (6 miesięcy temu) na innym serwer bez problemów
sMyles
@sMyles tak, został usunięty i zainstalowany, ale po zamontowaniu / var / lib / mysql w innym miejscu, tj. mega partycja w przeciwieństwie do tej, na której / var był wcześniej zamontowany. Jeśli istnieje jakiś problem z naszymi systemami, byłoby wspaniale się dowiedzieć, że tak jest. Było to na nowej standardowej instalacji Centos 7 OS z RAID 10 z 8x HDD, ale zwykle takie szczegóły macierzy dyskowej są niewidoczne dla oprogramowania.
Volksman
15
musiałbyś skopiować aktualne dane do nowego katalogu i zmienić my.cnfswój MySQL.
Cóż, tego nie mogę zrobić. Chcę zmienić katalog, ale chcę utworzyć nowe bazy danych w nowym katalogu. I chcesz uzyskać dostęp zarówno do starych, jak i nowych baz danych katalogów.
MySQL DBA,
1
@MySQL DBA: jeśli użyjesz ln -sstatycznego symbolicznego rysia, czy to nie zadziała?
RageZ
Cóż, jestem trochę zdezorientowany użyciem tego polecenia. Jak wyjaśniłem wcześniej, chcę utworzyć nowe bazy danych w nowym katalogu. Czy to możliwe za pomocą linku symbolicznego.
MySQL DBA
1
możesz utworzyć nowy katalog, użyć dowiązania symbolicznego, aby plik pojawił się w nowym katalogu i zmienić swójmy.cnf
RageZ
2
Głosowano w
14
Najpierw należy zatrzymać serwer mysql. na przykład
#/etc/init.d/mysql stop
Następnie należy skopiować stary katalog danych (np. / Var / lib / mysql) wł. uprawnienia do nowego katalogu za pośrednictwem
# cp -R -p /var/lib/mysql /new/data/dir
teraz możesz zmienić /etc/mysql/my.cnfdane na nowe i zrestartować serwer
Pliku /etc/systemd/system/mysqld.service nie ma tutaj. Masz jakiś pomysł, gdzie mam szukać?
Ron Piggott,
1
Dla osób korzystających MariaDB serwis plik znajduje się na /lib/systemd/system/[email protected]
Ron Piggott
5
Chciałem zachować bazę danych na moim komputerze, ale także mieć dane na moim zewnętrznym dysku twardym i przełączać się między nimi.
Jeśli korzystasz z komputera Mac i zainstalowałeś MySQL za pomocą Homebrew, powinno to zadziałać. W przeciwnym razie wystarczy zastąpić odpowiednie lokalizacje MySQL datadirna swoim komputerze.
#cd to my data dir location
cd /usr/local/var/#copy contents of local data directory to the new location
cp -r mysql//Volumes/myhd/mydatadir/#temporarily move the old datadir
mv mysql mysql.local
#symlink to the new location
ln -s /Volumes/myhd/mydatadir mysql
Następnie, gdy chcesz wrócić, po prostu wykonaj:
mv mysql mysql.remote
mv mysql.local mysql
i ponownie używasz lokalnej bazy danych. Mam nadzieję, że to pomoże.
to nie jest dokładnie odpowiadające na pytanie, jak stwierdzono - jednak dokładnie tego szukałem - i jest to zgrabny sposób obsługi skrajnego przypadku / błędu, który my.cnf nie obsługuje dobrze spacji: bugs.mysql.com /bug.php?id=26033 . Podam link do tego obejścia w tym raporcie o błędzie.
Następnie zmień datadir w swoim /etc/mysql/my.cnf
Start mysqld
Uwagi:
# 1: prawdopodobnie musisz dostosować ustawienia SELinuksa (wypróbuj z wyłączonym SELinuksem w przypadku problemów), problem może też stanowić Apparmor (Ubuntu).
być może nie działa to w przypadku innej dystrybucji, ale jeśli używasz Ubuntu, działa to dobrze i zmieniam ścieżkę dla każdego nowego zainstalowanego serwera Ubuntu, aby włączyć raid0.
naddame
2
Wiem, że ludzie to odrzucają, ale chcę wam powiedzieć, że to uratowało mi dzień. Dzięki!
Daniel Loureiro
3
To rozwiązanie działa w systemie Windows 7 przy użyciu Workbencha. Aby to zrobić, będziesz potrzebować uprawnień administratora. Tworzy połączenie (jak skrót) do miejsca, w którym naprawdę chcesz przechowywać swoje dane
Przejdź do C: \ ProgramData \ MySQL \ MySQL Server 5.6
Kliknij prawym przyciskiem myszy Dane i wybierz "PRZENIEŚ, a następnie LINK folder do ..." Zaakceptuj ostrzeżenie Wskaż miejsce docelowe na "Twój nowy katalog danych tutaj bez cudzysłowów" Kliknij PRZENIEŚ I POŁĄCZ
Teraz przejdź do „Twój nowy katalog danych tutaj bez cudzysłowów”
Kliknij prawym przyciskiem myszy Dane Przejdź do zakładki zabezpieczeń Kliknij Edytuj Kliknij Dodaj Typ USŁUGA SIECIOWA następnie Sprawdź nazwy Kliknij OK Kliknij pole wyboru Zezwalaj na pełną kontrolę, a następnie OK
Wróć do Workbencha i uruchom serwer
Ta metoda zadziałała dla mnie przy użyciu MySQL Workbench 6.2 w systemie Windows 7 Enterprise.
Lepiej nie zmieniać /etc/mysql/my.cnf
Zamiast tego chcesz utworzyć nowy plik /etc/mysql/conf.d/ext.cnf(dowolna nazwa, ale rozszerzenie powinno być cnf)
I umieść w nim swoją zmianę:
[mysqld]
datadir=/vagrant/mq/mysql
W ten sposób
Nie musisz zmieniać istniejącego pliku (łatwiejsze w przypadku skryptów automatyzacji)
Żadnych problemów z aktualizacją wersji MySQL (i jego konfiguracji!).
Jeśli jesteś użytkownikiem systemu Windows i wylądowałeś tutaj, aby dowiedzieć się, że wszystkie odpowiedzi są dla użytkowników systemu Linux, nie rozczaruj się! Nie pozwolę ci tracić czasu tak jak ja.
Trochę bzdur przed rozwiązaniem:
MySQL używa katalogu Data do przechowywania danych z różnych tworzonych przez Ciebie baz danych. Cóż, w końcu musi przechowywać je w postaci plików z dodatkiem żonglerki w aplikacji i formacie pliku, aby zapewnić, że obietnice bazy danych, których nauczyłeś się w klasach baz danych, są nienaruszone.
Teraz chcesz się upewnić, że jest wystarczająco dużo miejsca do przechowywania dużych baz danych, które możesz utworzyć w przyszłości, więc pomyślałeś: Hej! Chcę umieścić go na innym dysku, który ma więcej miejsca.
Więc wykonaj następujące czynności.
Krok - 1 : Zatrzymywanie usługi MySQL.
Window Key+ R - will open Run
servies.msc - will open services manager
Locate MySQL80 (80isfor version 8.0, look for the one you've).
Stop it.(Right click, Stop)
Krok - 2 : Znalezienie bieżącego katalogu danych
Goto C:\ProgramData\MySQL\MySQL Server 8.0
Domyślnie powinien być tutaj nazwany folder Data, to jest ten, który jest używany przez MySQL w ustawieniach domyślnych (pod warunkiem, że nie znaleźli innej lepszej lokalizacji), ale sprawdźmy to.
Odnaleźć my.ini plik, powinien tam być.
Otwórz go w edytorze (może Notepad ++).
Wykonaj CTRL + F, aby dowiedzieć się datadirw pliku.
Cokolwiek jest tutaj wymienione, to rzeczywista lokalizacja aktualnie używana przez MySQL dla katalogu danych. To właśnie chcesz zmienić.
Krok - 3 : Zastąpienie go nowym katalogiem danych.
Powiedzmy, że chcesz, aby Twój nowy katalog danych był W: __ MySQL_Data. Zmieńmy
datadirwartość w my.inipliku na tę wartość. Zachowaj komentarz poprzedniej wartości, abyś nie musiał jej pamiętać.
# Path to the database root
# datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data
datadir=W:/__MySQL_Data
>> xcopy "\C:\ProgramData\MySQL\MySQL Server 8.0""W:\"/E /H /K /O /X
I zmień nazwę skopiowanego folderu na nową datadirwartość, którą zmieniłeś. Tutaj:W:/__MySQL_Data
Dlaczego po prostu nie skopiować? Cóż, ponieważ to nie jest FAJNE !, pomaga to nie stracić uprawnień do skopiowanego folderu, więc po ponownym uruchomieniu MySQL80nie wystąpi głupi błąd: „Usługa MySQL80 na komputerze lokalnym została uruchomiona, a następnie zatrzymana. Niektóre usługi zatrzymują się automatycznie, jeśli nie są używane przez inne usługi lub programy. ” - Dzięki uprzejmości: Microsoft
Krok - 4 : Ponowne uruchomienie usługi
Well, go back to the Services Manager toStart again,"MySQL80" that you stopped,to restart it again.
Dzięki, że było pomocne, ale ostrzeżenie: zwykły użytkownik nie ma prawa zapisu do my.ini, chyba że zmienisz jego uprawnienia. Aha i ProgramData to ukryty folder, więc musisz zmienić ustawienia folderu Eksploratora, aby go zobaczyć.
JonP
1
Często muszę to robić podczas uaktualniania maszyn, przechodzenia z pudełka do pudełka. Oprócz przenoszenia / var / lib / mysql do lepszej lokalizacji, często muszę przywrócić stare tabele DB ze starej instalacji MySQL. Aby to zrobić ...
Zatrzymaj mysql. Postępuj zgodnie z instrukcjami powyżej, to konieczne.
Skopiuj katalogi bazy danych - będzie po jednym dla każdej bazy danych starej instalacji - do nowej lokalizacji DATADIR. Ale pomiń katalogi „mysql” i „performance_schema”.
Popraw uprawnienia w skopiowanych katalogach bazy danych. Właścicielem powinien być mysql: mysql, katalogi powinny mieć 700, a pliki - 660.
Uruchom ponownie mysql. W zależności od instalacji należy zaktualizować pliki DB starej wersji.
przepraszam za głos w dół, to rozwiązanie może być poprawne, nie próbowałem go.
user3338098
1
Musieliśmy przenieść MySQL do /homekatalogu, ponieważ został zmapowany z innego dysku fizycznego. Aby ułatwić życie na żywo, zamiast zmieniać katalog w my.cnf, zamapowaliśmy nowy katalog /home/mysqlw miejsce pierwotnego katalogu /var/lib/mysql. Działa dla nas jak urok (testowane na CentOS 7.1).
Utwórz nowy katalog i ustaw odpowiednie uprawnienia.
Jeśli chcesz to zrobić programowo (bez ręcznego wprowadzania tekstu za pomocą gedit), oto wersja dla pliku Dockerfile na podstawie odpowiedzi użytkownika1341296 powyżej:
FROM spittet/ruby-mysql
MAINTAINER you@gmail.com
RUN cp -R -p /var/lib/mysql /dev/shm &&\
rm -rf /var/lib/mysql &&\
sed -i -e 's,/var/lib/mysql,/dev/shm/mysql,g'/etc/mysql/my.cnf &&\/etc/init.d/mysql restart
W jednym ze środowisk zmieniłem katalog danych mysql na nową lokalizację, ale podczas restartu serwera mysql trwało to trochę. Sprawdziłem więc port i stwierdziłem, że inny proces nasłuchuje na porcie mysql. Więc zabiłem proces i zrestartowałem serwer mysql i działało dobrze.
Witamy w Stack Overflow! Chociaż może to teoretycznie odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj zasadnicze części odpowiedzi i podać link do odniesienia.
Tim Diekmann
0
Powyższe kroki są fundamentalne i podstawowe. Śledziłem je i nadal otrzymywałem błąd „mysql nie uruchomił się”.
Aby nowy folder przechował dane mysql, musisz upewnić się, że folder ma uprawnienia i własność mysql: mysql.
Poza tym musi sprawdzić uprawnienia i własność katalogu nadrzędnego mysql, jeśli ma, powiedzmy, / data / mysql /. Tutaj / data / katalog powinien być root: root. Naprawiłem błąd „Nie udało się uruchomić mysql” po zmianie właściciela katalogu nadrzędnego / mysql. System operacyjny w mojej maszynie wirtualnej to RHEL 7.6.
Próbowałem selinux w RHEL7.6, zmieniając SELINUX = egzekwowanie na SELINUX = permissive, nie działało dla mnie.
user3325137William
0
Możliwe jest również dowiązanie symboliczne do datadir. Przynajmniej w macOS, środowisku deweloperskim.
(homebrew) np
# make sure you're not overwriting anything important,backup existing data
mv /usr/local/var/mysql [your preferred data directory]
ln -s [your preferred data directory]/usr/local/var/mysql
Odpowiedzi:
Zatrzymaj MySQL za pomocą następującego polecenia:
Skopiuj istniejący katalog danych (domyślnie zlokalizowany w
/var/lib/mysql
) za pomocą następującego polecenia:edytuj plik konfiguracyjny MySQL za pomocą następującego polecenia:
Poszukaj wpisu
datadir
i zmień ścieżkę (która powinna być/var/lib/mysql
) do nowego katalogu danych.W terminalu wprowadź polecenie:
Poszukaj linii zaczynających się od
/var/lib/mysql
. Zmień/var/lib/mysql
linie z nową ścieżką.Zapisz i zamknij plik.
Zrestartuj profile AppArmor za pomocą polecenia:
Zrestartuj MySQL za pomocą polecenia:
Teraz zaloguj się do MySQL i uzyskaj dostęp do tych samych baz danych, które miałeś wcześniej.
źródło
alias /var/lib/mysql/ -> /newpath/,
Szybko i łatwo:
Edytuj
/etc/my.cnf
plik i[mysqld]
dodaj ten wiersz:Jeśli używasz CageFS (z lub bez CloudLinux) i chcesz zmienić katalog MySQL, MUSISZ dodać nowy katalog do tego pliku:
A następnie uruchom to polecenie:
źródło
musiałbyś skopiować aktualne dane do nowego katalogu i zmienić
my.cnf
swój MySQL.Musisz skopiować bazę danych, gdy serwer nie działa .
źródło
ln -s
statycznego symbolicznego rysia, czy to nie zadziała?my.cnf
Najpierw należy zatrzymać serwer mysql. na przykład
Następnie należy skopiować stary katalog danych (np. / Var / lib / mysql) wł. uprawnienia do nowego katalogu za pośrednictwem
teraz możesz zmienić
/etc/mysql/my.cnf
dane na nowe i zrestartować serwerźródło
Jeśli tak jak ja jesteś na Debianie i chcesz przenieść katalog mysql do swojego domu lub ścieżkę na / home / ..., rozwiązaniem jest:
Pewnego dnia znajdę rozwiązanie dla mnie w dokumentacji mariadbu. Mam nadzieję, że to pomoże niektórym facetom!
źródło
Chciałem zachować bazę danych na moim komputerze, ale także mieć dane na moim zewnętrznym dysku twardym i przełączać się między nimi.
Jeśli korzystasz z komputera Mac i zainstalowałeś MySQL za pomocą Homebrew, powinno to zadziałać. W przeciwnym razie wystarczy zastąpić odpowiednie lokalizacje MySQL
datadir
na swoim komputerze.Następnie, gdy chcesz wrócić, po prostu wykonaj:
i ponownie używasz lokalnej bazy danych. Mam nadzieję, że to pomoże.
źródło
Pierwszy przystanek mysqld
Następnie zmień datadir w swoim
/etc/mysql/my.cnf
Start mysqld
Uwagi:
# 1: prawdopodobnie musisz dostosować ustawienia SELinuksa (wypróbuj z wyłączonym SELinuksem w przypadku problemów), problem może też stanowić Apparmor (Ubuntu).
# 2: zobacz Poradnik instalacji bazy danych MySQL
źródło
Najpierw zatrzymaj mysql
skopiuj dane mysql do nowej lokalizacji.
jeśli używasz apparmor, edytuj następujący plik i wykonaj następujące czynności
Zastąp gdzie / var / lib / przez / yourdirectory /, a następnie dodaj następującą, jeśli nie istnieje w pliku
Zapisz plik za pomocą polecenia
Edytuj plik my.cnf
Zastąp gdzie / var / lib / przez / yourdirectory /, a następnie zapisz za pomocą polecenia
wreszcie uruchom mysql
@zobacz więcej o raid0, optymalizacji ici
źródło
To rozwiązanie działa w systemie Windows 7 przy użyciu Workbencha. Aby to zrobić, będziesz potrzebować uprawnień administratora. Tworzy połączenie (jak skrót) do miejsca, w którym naprawdę chcesz przechowywać swoje dane
Otwórz Workbench i wybierz INSTANCJA - Uruchomienie / Wyłączenie Zatrzymaj serwer
Zainstaluj Junction Master z https://bitsum.com/junctionmaster.php
Przejdź do C: \ ProgramData \ MySQL \ MySQL Server 5.6
Kliknij prawym przyciskiem myszy Dane i wybierz "PRZENIEŚ, a następnie LINK folder do ..." Zaakceptuj ostrzeżenie Wskaż miejsce docelowe na "Twój nowy katalog danych tutaj bez cudzysłowów" Kliknij PRZENIEŚ I POŁĄCZ
Teraz przejdź do „Twój nowy katalog danych tutaj bez cudzysłowów”
Kliknij prawym przyciskiem myszy Dane Przejdź do zakładki zabezpieczeń Kliknij Edytuj Kliknij Dodaj Typ USŁUGA SIECIOWA następnie Sprawdź nazwy Kliknij OK Kliknij pole wyboru Zezwalaj na pełną kontrolę, a następnie OK
Wróć do Workbencha i uruchom serwer
Ta metoda zadziałała dla mnie przy użyciu MySQL Workbench 6.2 w systemie Windows 7 Enterprise.
źródło
Wszystko, co powiedział @ user1341296, plus ...
Lepiej nie zmieniać
/etc/mysql/my.cnf
Zamiast tego chcesz utworzyć nowy plik/etc/mysql/conf.d/ext.cnf
(dowolna nazwa, ale rozszerzenie powinno byćcnf
)I umieść w nim swoją zmianę:
W ten sposób
źródło
Jeśli jesteś użytkownikiem systemu Windows i wylądowałeś tutaj, aby dowiedzieć się, że wszystkie odpowiedzi są dla użytkowników systemu Linux, nie rozczaruj się! Nie pozwolę ci tracić czasu tak jak ja.
Trochę bzdur przed rozwiązaniem:
MySQL używa katalogu Data do przechowywania danych z różnych tworzonych przez Ciebie baz danych. Cóż, w końcu musi przechowywać je w postaci plików z dodatkiem żonglerki w aplikacji i formacie pliku, aby zapewnić, że obietnice bazy danych, których nauczyłeś się w klasach baz danych, są nienaruszone.
Teraz chcesz się upewnić, że jest wystarczająco dużo miejsca do przechowywania dużych baz danych, które możesz utworzyć w przyszłości, więc pomyślałeś: Hej! Chcę umieścić go na innym dysku, który ma więcej miejsca.
Więc wykonaj następujące czynności.
Krok - 1 : Zatrzymywanie usługi MySQL.
Krok - 2 : Znalezienie bieżącego katalogu danych
Domyślnie powinien być tutaj nazwany folder
Data
, to jest ten, który jest używany przez MySQL w ustawieniach domyślnych (pod warunkiem, że nie znaleźli innej lepszej lokalizacji), ale sprawdźmy to.Odnaleźć
my.ini
plik, powinien tam być.Otwórz go w edytorze (może Notepad ++).
Wykonaj CTRL + F, aby dowiedzieć się
datadir
w pliku.Cokolwiek jest tutaj wymienione, to rzeczywista lokalizacja aktualnie używana przez MySQL dla katalogu danych. To właśnie chcesz zmienić.
Krok - 3 : Zastąpienie go nowym katalogiem danych.
Powiedzmy, że chcesz, aby Twój nowy katalog danych był W: __ MySQL_Data. Zmieńmy
datadir
wartość wmy.ini
pliku na tę wartość. Zachowaj komentarz poprzedniej wartości, abyś nie musiał jej pamiętać.Teraz użyj
xcopy
skopiować domyślnedatadir
doW:\
. Uruchom wiersz poleceń (Window + R, cmd, Enter)I zmień nazwę skopiowanego folderu na nową
datadir
wartość, którą zmieniłeś. Tutaj:W:/__MySQL_Data
Dlaczego po prostu nie skopiować? Cóż, ponieważ to nie jest FAJNE !, pomaga to nie stracić uprawnień do skopiowanego folderu, więc po ponownym uruchomieniu
MySQL80
nie wystąpi głupi błąd: „Usługa MySQL80 na komputerze lokalnym została uruchomiona, a następnie zatrzymana. Niektóre usługi zatrzymują się automatycznie, jeśli nie są używane przez inne usługi lub programy. ” - Dzięki uprzejmości: MicrosoftKrok - 4 : Ponowne uruchomienie usługi
Krok - 5 : Gotowe! A teraz wracaj do pracy !!
źródło
Często muszę to robić podczas uaktualniania maszyn, przechodzenia z pudełka do pudełka. Oprócz przenoszenia / var / lib / mysql do lepszej lokalizacji, często muszę przywrócić stare tabele DB ze starej instalacji MySQL. Aby to zrobić ...
źródło
Musieliśmy przenieść MySQL do
/home
katalogu, ponieważ został zmapowany z innego dysku fizycznego. Aby ułatwić życie na żywo, zamiast zmieniać katalog w my.cnf, zamapowaliśmy nowy katalog/home/mysql
w miejsce pierwotnego katalogu/var/lib/mysql
. Działa dla nas jak urok (testowane na CentOS 7.1).Utwórz nowy katalog i ustaw odpowiednie uprawnienia.
Zatrzymaj MySQL, jeśli jest uruchomiony.
Przenieś katalog danych.
Utwórz stały montaż i wykonaj go.
Zrestartuj serwer.
źródło
Jeśli chcesz to zrobić programowo (bez ręcznego wprowadzania tekstu za pomocą gedit), oto wersja dla pliku Dockerfile na podstawie odpowiedzi użytkownika1341296 powyżej:
Dostępne w centrum Docker tutaj: https://hub.docker.com/r/richardjecooke/ruby-mysql-in-memory/
źródło
Po pierwsze, powinieneś wiedzieć, gdzie jest twój plik konfiguracyjny? gdzie jest twój plik konfiguracyjny?
JEŚLI zainstalowałeś z apt-get lub yum install。
config może pojawić się w
plik danych może pojawić się w
i co powinieneś zrobić, to
a następnie wykonane prace.
Ale jeśli nie zainstalowałeś go za pomocą apt lub yum, direcotry może tego nie lubić i możesz znaleźć pliki mysql za pomocą
źródło
W SuSE 13.1 działa to dobrze, aby przenieść katalog danych mysql w inne miejsce, np. Do / home / example_user /, i nadać mu bardziej pouczającą nazwę:
W / var / lib /:
Zrestartowałem mysql:
ale podejrzewam, że nawet to nie było konieczne.
źródło
W jednym ze środowisk zmieniłem katalog danych mysql na nową lokalizację, ale podczas restartu serwera mysql trwało to trochę. Sprawdziłem więc port i stwierdziłem, że inny proces nasłuchuje na porcie mysql. Więc zabiłem proces i zrestartowałem serwer mysql i działało dobrze.
Wykonałem poniższe kroki, aby zmienić katalog danych, który działał doskonale. zmień katalog danych mysql w systemie Linux
źródło
Powyższe kroki są fundamentalne i podstawowe. Śledziłem je i nadal otrzymywałem błąd „mysql nie uruchomił się”.
Aby nowy folder przechował dane mysql, musisz upewnić się, że folder ma uprawnienia i własność mysql: mysql.
Poza tym musi sprawdzić uprawnienia i własność katalogu nadrzędnego mysql, jeśli ma, powiedzmy, / data / mysql /. Tutaj / data / katalog powinien być root: root. Naprawiłem błąd „Nie udało się uruchomić mysql” po zmianie właściciela katalogu nadrzędnego / mysql. System operacyjny w mojej maszynie wirtualnej to RHEL 7.6.
źródło
Możliwe jest również dowiązanie symboliczne do datadir. Przynajmniej w macOS, środowisku deweloperskim.
(homebrew) np
Uruchom ponownie mysql.
źródło
Jeśli używasz SE linux, ustaw go na tryb zezwalający, edytując / etc / selinux / config i zmieniając SELINUX = egzekwowanie na SELINUX = permissive
źródło
datadir