Odchodzę od Linode, ponieważ nie mam niezbędnych umiejętności sysadmin w Linuksie; zanim zakończę przejście do bardziej przyjaznej noob usługi, muszę pobrać zawartość bazy danych MySQL. Czy mogę to zrobić z wiersza poleceń?
Odchodzę od Linode, ponieważ nie mam niezbędnych umiejętności sysadmin w Linuksie; zanim zakończę przejście do bardziej przyjaznej noob usługi, muszę pobrać zawartość bazy danych MySQL. Czy mogę to zrobić z wiersza poleceń?
Odpowiedzi:
Można to zrobić za pomocą funkcji wiersza polecenia mysqldump .
Na przykład:
Jeśli jest to cała baza danych, to:
$ mysqldump -u [uname] -p db_name > db_backup.sql
Jeśli to wszystko DB, to:
$ mysqldump -u [uname] -p --all-databases > all_db_backup.sql
Jeśli są to określone tabele w bazie danych, to:
$ mysqldump -u [uname] -p db_name table1 table2 > table_backup.sql
Możesz nawet posunąć się do automatycznej kompresji danych wyjściowych za pomocą gzip (jeśli twój DB jest bardzo duży):
$ mysqldump -u [uname] -p db_name | gzip > db_backup.sql.gz
Jeśli chcesz to zrobić zdalnie i masz dostęp do danego serwera, to działałyby następujące czynności (zakładając, że serwer MySQL znajduje się na porcie 3306):
$ mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name > db_backup.sql
Powinien upuścić .sql
plik w folderze, z którego uruchamiasz wiersz poleceń.
EDYCJA: Zaktualizowano, aby uniknąć dodawania haseł do komend CLI, użyj -p
opcji bez hasła. Zostaniesz o to poproszony, a nie nagrany.
wget
albo scp
będzie potrzebne, aby odzyskać wspomniany plik po zbudowaniu.
>
do zapisywania, raczej używam -r
, aby uniknąć problemów z obcymi postaciami lub tego koszmaru dotyczącego problemów z kodowaniem, jak stwierdzono w tym artykule .
--result-file=db_backup.sql
zamiast > db_backup.sql
. Cytat z dokumentacji MySQL : „UTF-16 nie jest dozwolony jako zestaw znaków połączenia (patrz Niedopuszczalne zestawy znaków klienta ), więc plik zrzutu nie ładuje się poprawnie. Aby obejść ten problem, użyj --result-file
opcji, która tworzy dane wyjściowe w Format ASCII ”.
W najnowszych wersjach mysql, przynajmniej w mojej, nie możesz podać swojej komendy bezpośrednio w poleceniu.
Musisz uruchomić:
mysqldump -u [uname] -p db_name > db_backup.sql
a następnie poprosi o hasło.
-p
opcją a rzeczywistą hasło załatwia sprawę
W przypadku pobierania ze zdalnego serwera, oto prosty przykład:
mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql
-P wskazuje, że wprowadzisz hasło, nie odnosi się ono do nazwy_db. Po wprowadzeniu polecenia pojawi się monit o podanie hasła. Wpisz go i naciśnij enter.
W systemie Windows musisz określić pojemnik mysql, w którym znajduje się plik mysqldump.exe.
cd C:\xampp\mysql\bin
mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql
zapisz to w pliku tekstowym, takim jak backup.cmd
mysql
polecenia z dowolnego miejsca, nie będąc w jego katalogu.
Otwórz wiersz polecenia i wpisz bezpośrednio to polecenie. Nie wchodź do mysql, a następnie wpisz to polecenie.
mysqldump -u [uname] -p[pass] db_name > db_backup.sql
Przejdź do katalogu instalacyjnego MySQL i stamtąd otwórz cmd. Następnie wykonaj poniższe polecenie, aby uzyskać kopię zapasową bazy danych.
mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql
Po prostu wpisz mysqldump
lubmysqldump --help
w cmd pokażehow to use
Oto mój wynik cmd
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
Dla tych, którzy chcą wpisać hasło w wierszu polecenia. Jest to możliwe, ale zaleca się przekazywanie go w cudzysłowie, aby znak specjalny nie powodował żadnych problemów.
mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql
Użyj tego Jeśli masz bazę danych o nazwie archiedb, użyj tego mysql -p --databases archiedb> /home/database_backup.sql
Zakładając, że jest to Linux, wybierz miejsce, w którym zostanie zapisany plik kopii zapasowej.
Użytkownicy systemu Windows mogą przejść do folderu mysql, aby uruchomić polecenie
na przykład
cd c:\wamp64\bin\mysql\mysql5.7.26\bin
mysqldump -u root -p databasename > dbname_dump.sql
Uwaga: ten krok pojawia się dopiero po zrzuceniu pliku MySQL (na który odpowiedział większość odpowiedzi powyżej).
Zakłada się, że masz plik zrzutu na zdalnym serwerze, a teraz chcesz go sprowadzić na komputer lokalny.
Aby pobrać zrzucony .sql
plik ze zdalnego serwera na komputer lokalny, wykonaj następujące czynności:
scp -i YOUR_SSH_KEY your_username@IP:name_of_file.sql ./my_local_project_dir