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ń?
mysql
command-line
command-line-arguments
linode
Phillip Copley
źródło
źródło
Odpowiedzi:
Można to zrobić za pomocą funkcji wiersza polecenia mysqldump .
Na przykład:
Jeśli jest to cała baza danych, to:
Jeśli to wszystko DB, to:
Jeśli są to określone tabele w bazie danych, to:
Możesz nawet posunąć się do automatycznej kompresji danych wyjściowych za pomocą gzip (jeśli twój DB jest bardzo duży):
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):
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.źródło
wget
alboscp
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.
źródło
-p
opcją a rzeczywistą hasło załatwia sprawęW przypadku pobierania ze zdalnego serwera, oto prosty przykład:
-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.
źródło
W systemie Windows musisz określić pojemnik mysql, w którym znajduje się plik mysqldump.exe.
zapisz to w pliku tekstowym, takim jak backup.cmd
źródło
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.
źródło
Przejdź do katalogu instalacyjnego MySQL i stamtąd otwórz cmd. Następnie wykonaj poniższe polecenie, aby uzyskać kopię zapasową bazy danych.
źródło
Po prostu wpisz
mysqldump
lubmysqldump --help
w cmd pokażehow to use
Oto mój wynik cmd
źródło
Jeśli korzystasz z MySQL innego niż domyślny port:
źródło
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.
źródło
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.
źródło
Użytkownicy systemu Windows mogą przejść do folderu mysql, aby uruchomić polecenie
na przykład
źródło
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:źródło