Kopia bazy danych - sql

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
sharpq
Sędziwy Jeż
Sędziwy Jeż
Posty: 33
Rejestracja: 24 gru 2008, 12:31
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Kopia bazy danych - sql

Post autor: sharpq »

Witam,
Musze wykonać kopię bazy danych (mysql) na jednym serwerze i przenieść ją na inny serwer. Odpada operacja przez phpmyadmin, ponieważ bazy są wielkości ponad 20MB.
Na jednym i drugim serwerze mam dostęp przez ssh, jakie polecenia muszę wprowadzić w konsoli aby wszystko przeszło gładko?
Jeden serwer to ubuntu, drugi to debian.
Pozdro,
sharp-Q
17piotrek

Odp: Kopia bazy danych - sql

Post autor: 17piotrek »

Kod: Zaznacz cały

mysql -u user -p nazwa_bazy >zrzut.sql
Awatar użytkownika
sharpq
Sędziwy Jeż
Sędziwy Jeż
Posty: 33
Rejestracja: 24 gru 2008, 12:31
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Odp: Kopia bazy danych - sql

Post autor: sharpq »

ok, polecenie do zrzutu jest, a jakie jest polecenie do wgrania na nowym serwerze?
ps: serdecznie dzieki ;)
Pozdro,
sharp-Q
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Kopia bazy danych - sql

Post autor: el.pescado »

Najbardziej efektywny jest program mysqlhotcopy. Tworzy on kopię bazy danych w postaci plików, które następnie wystarczy umieścić w odpowiednim miejscu na drugim serwerze (/var/lib/mysql o ile dobrze pamiętam) - ewentualnie po poprawieniu praw dostępu.

Innym sposobem, trochę niej efektywnym, jeżeli chce się przenieść tylko dane, nie strukturę bazy danych, można użyć kombinacji SELECT ... INTO OUTFILE oraz LOAD DATA ... INFILE
http://dev.mysql.com/doc/refman/5.1/en/select.html
http://dev.mysql.com/doc/refman/5.1/en/load-data.html

Ostatecznie można utworzyć sobie plik SQL z zapytaniami odtwarzającymi bazę danych - utworzyć takie coś można programem mysqldump, a przywrócić po prostu wykonując skrypt sql

Kod: Zaznacz cały

mysql [opcje] < plik.sql
ewentualnie używając polecenia source.

Kod: Zaznacz cały

man mysqlhotcopy
man mysqldump
http://dev.mysql.com/doc/refman/5.1/en/ ... mands.html
Awatar użytkownika
sharpq
Sędziwy Jeż
Sędziwy Jeż
Posty: 33
Rejestracja: 24 gru 2008, 12:31
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Odp: Kopia bazy danych - sql

Post autor: sharpq »

Hej,
Właśnie opcja nr 2 jest dla mnie najprostrza, ale nie mogę przebrgnąć przez opcje... :(
Zrobiłem zrzut zgodnie z poleceniem od 17piotrek, a teraz taki zrzut chciałbym wgrać na nowy serwis. Jakie muszę dodać komendy (opcje) ? Czy są jakieś "uniwersalne" ?
Pozdro,
sharp-Q
Awatar użytkownika
mario_7
Administrator
Administrator
Posty: 8659
Rejestracja: 30 sie 2006, 13:11
Płeć: Mężczyzna
Wersja Ubuntu: 20.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Kopia bazy danych - sql

Post autor: mario_7 »

tworzenie kopii:

Kod: Zaznacz cały

mysqldump --opt -Q -u nazwauzytkownika -p nazwabazy > nazwakopii.sql
odtwarzanie kopii:

Kod: Zaznacz cały

mysql -u nazwauzytkownika -p nazwabazy < nazwakopii.sql
w obu przypadkach zostaniesz zapytany o hasło do bazy.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości