Mam bazę danych, która jest dość duża, więc chcę ją wyeksportować za pomocą wiersza polecenia, ale nie wiem jak to zrobić.
Używam WAMP.
Mam bazę danych, która jest dość duża, więc chcę ją wyeksportować za pomocą wiersza polecenia, ale nie wiem jak to zrobić.
Używam WAMP.
Odpowiedzi:
Najpierw sprawdź, czy wiersz polecenia rozpoznaje polecenie mysql. Jeśli nie, przejdź do polecenia i wpisz:
set path=c:\wamp\bin\mysql\mysql5.1.36\bin
Następnie użyj tego polecenia, aby wyeksportować bazę danych:
mysqldump -u YourUser -p YourDatabaseName > wantedsqlfile.sql
Zostaniesz poproszony o podanie hasła do bazy danych .
Spowoduje to wyeksportowanie bazy danych do ścieżki, w której aktualnie jesteś, podczas wykonywania tego polecenia
Uwaga: oto kilka szczegółowych instrukcji dotyczących importu i eksportu
-pi thepassword.
-pa następnie zostaniesz poproszony o hasło. W ten sposób można uniknąć konieczności hasła zapisane na przykład w.bash_history
Po prostu użyj następującego polecenia,
Na eksport:
mysqldump -u [user] -p [db_name] | gzip > [filename_to_compress.sql.gz]
Do importu:
gunzip < [compressed_filename.sql.gz] | mysql -u [user] -p[password] [databasename]
Uwaga: między słowem kluczowym „-p” a hasłem nie ma spacji.
gzip -9powoduje, że plik wynikowy jest nieco mniejszy, ponieważ stosowana jest maksymalna kompresja.
Przede wszystkim otwórz wiersz polecenia, a następnie otwórz katalog bin w cmd (mam nadzieję, że znasz polecenia cmd ) idź do katalogu bin twojego folderu MySql w plikach programu WAMP .
Uruchom polecenie
mysqldump -u db_username -p database_name > path_where_to_save_sql_file
naciśnij enter system wyeksportuje określoną bazę danych i utworzy plik sql do podanej lokalizacji.
mam nadzieję, że je masz :) jeśli masz jakieś pytania, daj mi znać.
Możesz użyć poniższego polecenia,
mysqldump --databases --user=root --password your_db_name > export_into_db.sql
a wygenerowany plik będzie dostępny w tym samym katalogu, w którym uruchomiłeś to polecenie.
Możesz znaleźć więcej na oficjalnej referencji dla mysqldump: Importuj eksport MySQL DB
Uwaga : użyj --databaseszamiast, --databaseponieważ ostatni nie jest już obsługiwany.
Cieszyć się :)
mysqldump: [ERROR] unknown option '--database'ale wyłączenie --databasego zadziałało.
Przejdź do wiersza polecenia na tej ścieżce,
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>
Następnie podaj to polecenie, aby wyeksportować bazę danych ( bez spacji po -p )
mysqldump -u[username] -p[userpassword] yourdatabase > [filepath]wantedsqlfile.sql
Znajdź swoją instancję mysql za pomocą:
which mysql
Jeśli jest to poprawne, wyeksportuj za pomocą następującego (w przeciwnym razie przejdź do instancji mysql w folderze mamp w bin):
mysqldump -u [username] -p [password] [dbname] > filename.sql
A jeśli chcesz go skompresować w tym samym czasie:
mysqldump -u [username] -p [password] [db] | gzip > filename.sql.gz
Następnie możesz przenieść ten plik między serwerami za pomocą:
scp user@xxx.xxx.xxx.xxx:/path_to_your_dump/filename.sql.gz your_detination_path/
(gdzie xxx.xxx.xxx.xxx to adres IP serwera)
A następnie zaimportuj go za pomocą:
gunzip filename.sql.gz | mysql -u [user] -p [password] [database]
passwordz wiersza poleceń: mysqldump -u [nazwa użytkownika] -p [nazwa_bazy]> nazwa_pliku.sql Uniemożliwia to użytkownikom przeszukiwanie historii w poszukiwaniu hasła.
mysqldump -u tutorials -p'mypassword' -h 127.0.0.1 database_name > file_backup_database_name_.sql Ostrzeżenie: Użycie hasła w interfejsie wiersza poleceń może być niepewne.
Aby wyeksportować również PROCEDURY, FUNKCJE i SPUSTY, dodaj --routinesparametr:
mysqldump -u YourUser -p YourDatabaseName --routines > wantedsqlfile.sql
--routinesrobi różnicę :) Jakieś wskazówki, jak eksportować tylko PROCEDURY, FUNKCJE i TRIGERY? Dla tych, którzy zapomnieli o przełączniku i wyeksportowali „czystą” DB bez „algorytmów” :)
--eventsjest potrzebny, aby zrzucić zdarzenia z harmonogramu zdarzeń, a wyzwalacze są zawsze eksportowane, chyba że --skip-triggersokreślono inaczej (zgodnie z 7.4.5.3 Zrzucanie przechowywanych programów )
Podaj to polecenie, aby wyeksportować bazę danych, będzie ona również zawierać datę
mysqldump -u[username] -p[userpassword] --databases yourdatabase | gzip > /home/pi/database_backup/database_`date '+%m-%d-%Y'`.sql.gz
(bez spacji po -p)
--databasesspowoduje wstawienie instrukcji jako CREATE DATABASE XYZ;i USE XYZ;, co nie jest przydatne podczas importowania SQL do innej bazy danych o innej nazwie ...
Zainstalowałem mój serwer wamp na D: dysk, więc musisz przejść do następującej ścieżki z wiersza poleceń ur -> (a jeśli zainstalowałeś ur wamp na c: dysk, po prostu zastąp d: wtih c: tutaj)
D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button and select the currently working mysql version on your server if you have more than one mysql versions)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysqldump -u root -p password db_name > "d:\backupfile.sql"
tutaj root jest użytkownikiem mojego phpmyadmin hasło jest hasłem dla phpmyadmin, więc jeśli nie ustawiłeś żadnego hasła dla roota, po prostu nic nie wpisuj w tym miejscu, db_name to baza danych (dla której bazy danych masz kopię zapasową), backupfile.sql jest plik, w którym chcesz wykonać kopię zapasową swojej bazy danych, a także możesz zmienić lokalizację pliku kopii zapasowej (d: \ backupfile.sql) z dowolnego innego miejsca na komputerze
-pi password?
mysqldump -h [host] -p -u [user] [database name] > filename.sql
Przykład w localhost
mysqldump -h localhost -p -u root cookbook > cookbook.sql
Problem ze wszystkimi tymi rozwiązaniami (przy użyciu >znaku przekierowującego) polega na tym, że piszesz zrzut ze standardowego wyjścia, co może przerwać kodowanie niektórych znaków w bazie danych.
Jeśli masz problem z kodowaniem znaków. Jak na przykład :
BŁĄD 1064 (42000): Wystąpił błąd w składni SQL; sprawdź instrukcję, która odpowiada twojej wersji serwera MySQL pod kątem właściwej składni do użycia w pobliżu ...
następnie MUSISZ użyć -ropcji, aby zapisać plik.
MySQL
mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump.sql
Korzystanie z Dockera
docker exec --rm -v $pwd:dump -it mysql:5:7 mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump/dump.sql
Uwaga: montuje bieżącą ścieżkę jako zrzut wewnątrz instancji.
Znaleźliśmy odpowiedź tutaj
I odwrotnie, nie używaj <do importowania zrzutu do bazy danych, ponownie, twoje znaki inne niż utf8 mogą nie zostać przekazane; ale wolę opcję źródła.
mysql -u user -pYourPasswordYouNowKnowHow --default-character-set=utf8 your-database
mysql> SET names 'utf8'
mysql> SOURCE dump.sql
(mysqldump.exe full path) -u (user name) -p (password) (database name) > (export database file full path)
c:>d:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe -u root -p mydbname > d:\mydb.sql
gdzie d: \ wamp \ bin \ mysql \ mysql5.6.12 \ bin \ mysqldump.exe będzie twoją rzeczywistą ścieżką mysqldump.exe, mydbname to nazwa bazy danych, którą chcesz wyeksportować, a d: \ mydb.sql to ścieżka gdzie chcesz zapisać wyeksportowaną bazę danych.
Użyłem serwera Wamp. Próbowałem
c:\wamp\bin\mysql\mysql5.5.8\bin\mysqldump -uroot -p db_name > c:\somefolder\filename.sql
root to moja nazwa użytkownika dla mysql, a jeśli masz jakieś hasło, podaj je za pomocą:
-p[yourpassword]
Mam nadzieję, że to działa.
W przypadku systemu operacyjnego Windows :
Gdy pojawi się błąd 1064 mysql (42000) podczas próby wykonania polecenia mysqldump , wyjdź z bieżącego terminala. I uruchom polecenie mysqldump.
mysql>exit
c:\xampp\mysql\bin>mysqldump -uroot -p --databases [database_name] > name_for_export_db.sql
Próbowałem zrobić zrzut bazy danych uruchomionej w oknie dokowanym i wymyśliłem poniższe polecenie, aby osiągnąć to samo:
docker exec <container_id/name>/ usr / bin / mysqldump -u <db_username>--password = <db_password> db_name> .sql
Mam nadzieję że to pomoże!
Możesz użyć tego skryptu, aby wyeksportować lub zaimportować dowolną bazę danych z terminala podanego pod tym linkiem: https://github.com/Ridhwanluthra/mysql_import_export_script/blob/master/mysql_import_export_script.sh
echo -e "Welcome to the import/export database utility\n"
echo -e "the default location of mysqldump file is: /opt/lampp/bin/mysqldump\n"
echo -e "the default location of mysql file is: /opt/lampp/bin/mysql\n"
read -p 'Would like you like to change the default location [y/n]: ' location_change
read -p "Please enter your username: " u_name
read -p 'Would you like to import or export a database: [import/export]: ' action
echo
mysqldump_location=/opt/lampp/bin/mysqldump
mysql_location=/opt/lampp/bin/mysql
if [ "$action" == "export" ]; then
if [ "$location_change" == "y" ]; then
read -p 'Give the location of mysqldump that you want to use: ' mysqldump_location
echo
else
echo -e "Using default location of mysqldump\n"
fi
read -p 'Give the name of database in which you would like to export: ' db_name
read -p 'Give the complete path of the .sql file in which you would like to export the database: ' sql_file
$mysqldump_location -u $u_name -p $db_name > $sql_file
elif [ "$action" == "import" ]; then
if [ "$location_change" == "y" ]; then
read -p 'Give the location of mysql that you want to use: ' mysql_location
echo
else
echo -e "Using default location of mysql\n"
fi
read -p 'Give the complete path of the .sql file you would like to import: ' sql_file
read -p 'Give the name of database in which to import this file: ' db_name
$mysql_location -u $u_name -p $db_name < $sql_file
else
echo "please select a valid command"
fi