[+] Mysql - przenoszenie bazy w inne miejsce

Tematy związane z oprogramowaniem, instalacją, konfiguracją
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2351
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

[+] Mysql - przenoszenie bazy w inne miejsce

Post autor: LordRuthwen »

Witam.
Ostatnio wpadłem na pomysł przeniesienia plików baz mysql w inne miejsce na dysku, tzn. z domyślnego katalogu /var/lib/mysql do /home/bazy/mysql (potem jeszcze dojdzie do tego postgresql, gdyż to właśnie dla partycji /home mam kopie lustrzane na tej maszynie), jako że byłem przekonany, że to nie będzie trudne, zacząłem od zatrzymania silnika bazy, skopiowałem pliki metodą:

Kod: Zaznacz cały

cp -fpvdR /var/lib/mysql /home/bazy/
Sprawdziłem uprawnienia katalogu:

Kod: Zaznacz cały

ls -l /var/lib/ |grep mysql
drwxr-xr-x 33 mysql      mysql      1040 2010-02-23 22:03 mysql
ls -l /home/bazy/ |grep mysql
drwxr-xr-x 33 mysql mysql 1040 2010-02-22 17:07 mysql
zmieniłem w pliku /etc/mysql/my.cnf linię:

Kod: Zaznacz cały

datadir         = /var/lib/mysql
na:

Kod: Zaznacz cały

datadir                = /home/bazy/mysql
próbowałem wystartować bazę ale nie wstała, w logach mysql nie ma po niczym śladu, natomiast w wiadomościach znalazłem to:

Kod: Zaznacz cały

Feb 23 22:00:30 lilo kernel: [5380439.659826] type=1503 audit(1266958830.333:8): operation="inode_create" requested_mask="a::" denied_mask="a::" fsuid=0 name="/home/bazy/mysql/lilo.lower-test" pid=11048 profile="/usr/sbin/mysqld"
Feb 23 22:00:30 lilo kernel: [5380439.660458] type=1503 audit(1266958830.333:9): operation="inode_create" requested_mask="a::" denied_mask="a::" fsuid=0 name="/home/bazy/mysql/lilo.lower-test" pid=11048 profile="/usr/sbin/mysqld"
Feb 23 22:00:30 lilo kernel: [5380439.678623] type=1503 audit(1266958830.353:10): operation="inode_permission" requested_mask="rw::" denied_mask="rw::" fsuid=110 name="/home/bazy/mysql/ibdata1" pid=11048 profile="/usr/sbin/mysqld"
Feb 23 22:02:27 lilo kernel: [5380557.235461] type=1503 audit(1266958947.909:11): operation="inode_create" requested_mask="a::" denied_mask="a::" fsuid=0 name="/home/bazy/mysql/lilo.lower-test" pid=11359 profile="/usr/sbin/mysqld"
Feb 23 22:02:27 lilo kernel: [5380557.235646] type=1503 audit(1266958947.909:12): operation="inode_create" requested_mask="a::" denied_mask="a::" fsuid=0 name="/home/bazy/mysql/lilo.lower-test" pid=11359 profile="/usr/sbin/mysqld"
Feb 23 22:02:27 lilo kernel: [5380557.253017] type=1503 audit(1266958947.929:13): operation="inode_permission" requested_mask="rw::" denied_mask="rw::" fsuid=110 name="/home/bazy/mysql/ibdata1" pid=11359 profile="/usr/sbin/mysqld"
Może mnie ktoś naprowadzić co i jak zrobić, żeby było dobrze?
fnmirk
Senior Member
Posty: 8324
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

Najprościej to przenieść katalog z bazą w dowolne miejsce, a w poprzednim miejscu utworzyć dowiązanie o nazwie starego katalogu.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2351
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Powiem Ci, że nie bardzo chce działać w ten sposób.
fnmirk
Senior Member
Posty: 8324
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

Po tych swoich wcześniejszych zmianach przywróciłeś domyślne ustawienia.
Dowiązanie i przeniesienie katalogu spróbuj wykonać z pomocą jakiegoś livecd.
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Witam.

Dopisuje się do tematu z dokładnie takim samym problemem. Czy oprócz dowiązania nie idzie tego zrobić w jakiś bardziej "cywilizowany" sposób?

Zrobiłem.

Wyłączamy bazę myslq:

Kod: Zaznacz cały

/etc/init.d/myslq stop
Kopiujemy bazę w nowe, wybrane przez Nas miejsce:

Kod: Zaznacz cały

cp -pvdR /var/lib/mysql /home/bazy_danych/mysql
Następnie edytujemy plik:

Kod: Zaznacz cały

/etc/mysql/my.cnf
zmieniając linijkę:

Kod: Zaznacz cały

datadir               = /var/lib/mysql
na:

Kod: Zaznacz cały

datadir               = /sieżka/do/bazy
Zapisujemy i startujemy bazę:

Kod: Zaznacz cały

/etc/init.d/myslq start
Baza ruszyła z nowego miejsca. Tak więc nie wiem dlaczego kolega LordRuthwen miał problem, ale podejrzewam, że nie odpisując już więcej w tym temacie, dał nam do zrozumienia, że jemu też zadziałało. Pytanie, odrębne jak uruchomić wykorzystując skrypty Debiana dwie niezależne instancje bazy mysql?
Pacek
Beginner
Posty: 315
Rejestracja: 18 sierpnia 2009, 15:17
Lokalizacja: Gdynia

Post autor: Pacek »

Bastian. Absolutnie nie mam uwag do Twojego pomysłu. Wg mnie jest ok. Mam tylko taką kwestię - czemu w pierwszych dwóch punktach nie wykorzystać bardzo dobrego narzędzia MySQL'a o nazwie mysqlhotcopy? Nie wymaga ono zatrzymania serwera SQL a na dodatek robi lokalną kopię wybranych baz danych (w obrębie tej samej maszyny).
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

A nie wiem, zapomniałem o tym narzędziu, być może dlatego, że rzadko go używałem. Ale jasne, można przez mysqlhotcopy.
Awatar użytkownika
sector
Beginner
Posty: 113
Rejestracja: 28 kwietnia 2010, 10:48
Lokalizacja: Kraków

Post autor: sector »

Tak z ciekawości, czy ten sposób z dowiązaniem folderu faktycznie nie działa, czy może twórca tematu coś złe zrobił?
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Nie wiem, ale skoro działa ze skopiowaniem to nie ma prawa nie działać z dowiązaniem.
fnmirk
Senior Member
Posty: 8324
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

Opcja z przeniesieniem katalogu, na inną partycję, i z dowiązaniem działa. Dość często z niej korzystam w różnych sytuacjach. Działa nawet dla wersji livecd Linuksa. Można przenosić katalogi na partycje fizyczne wykonując dowiązania w wirtualnej przestrzeni dostępnej dla livecd.
Jeżeli zapewnimy ciągłość zasilania i nie będziemy restartować systemu to uzyskujemy system porównywalny z tym zainstalowanym na dysku. Można usuwać i dodawać wszystkie programy z wyjątkiem tych co wymagają restartu systemu i nie można zmienić wersji jądra. To tak trochę poza tematem.
ODPOWIEDZ