Szukam składni do zrzutu wszystkich danych w mojej bazie danych mysql. Nie chcę żadnych informacji o stole.
Szukam składni do zrzutu wszystkich danych w mojej bazie danych mysql. Nie chcę żadnych informacji o stole.
Odpowiedzi:
mysqldump --no-create-info ...
Możesz również użyć:
--skip-triggers
: jeśli używasz wyzwalaczy--no-create-db
: jeśli używasz --databases ...
opcji--compact
: jeśli chcesz pozbyć się dodatkowych komentarzymysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Access denied for user ... to database '...' when doing LOCK TABLES
, użyj--single-transaction
--where
. Na przykład--where="id=2"
To powinno działać:
# To export to file (data only)
mysqldump -u [user] -p[pass] --no-create-info mydb > mydb.sql
# To export to file (structure only)
mysqldump -u [user] -p[pass] --no-data mydb > mydb.sql
# To import to database
mysql -u [user] -p[pass] mydb < mydb.sql
UWAGA: nie ma spacji między -p
&[pass]
--no-create-db
jest zbędny podczas używania--no-create-info
-p
jest w porządku
ps -ef
)
-p
opcji powoduje wyświetlenie mysqldump
monitu o podanie hasła.
>> man -k mysqldump [enter in the terminal]
znajdziesz poniższe wyjaśnienie
--no-create-info, -t
Nie pisz instrukcji CREATE TABLE, które odtwarzają każdą zrzuconą tabelę. Uwaga Ta opcja nie wyklucza instrukcji tworzących grupy plików dziennika lub obszary tabel z danych wyjściowych mysqldump; można jednak w tym celu użyć opcji --no-tablespaces.
- brak danych, -d
Nie pisz żadnych informacji o wierszach tabeli (to znaczy nie zrzucaj zawartości tabeli). Jest to przydatne, jeśli chcesz zrzucić tylko instrukcję CREATE TABLE dla tabeli (na przykład, aby utworzyć pustą kopię tabeli, ładując plik zrzutu).
# To export to file (data only)
mysqldump -t -u [user] -p[pass] -t mydb > mydb_data.sql
# To export to file (structure only)
mysqldump -d -u [user] -p[pass] -d mydb > mydb_structure.sql
Sugeruje użycie następującego fragmentu kodu. Działa dobrze nawet z dużymi tabelami (w przeciwnym razie otworzyłbyś zrzut w edytorze i usunął niepotrzebne rzeczy, prawda?)
mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql
Wymagany co najmniej mysql 5.x , ale kto dziś obsługuje stare rzeczy :)
Po prostu zrzuć dane w formacie tekstu rozdzielanego .
Podczas próby wyeksportowania danych przy użyciu zaakceptowanej odpowiedzi wystąpił błąd:
ERROR 1235 (42000) at line 3367: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
Jak wspomniano powyżej:
mysqldump --no-create-info
Wyeksportuje dane, ale wyeksportuje również instrukcje tworzenia wyzwalaczy. Jeśli tak jak ja, twoja wyjściowa struktura bazy danych (która obejmuje również wyzwalacze) za pomocą jednego polecenia, a następnie za pomocą powyższego polecenia, aby uzyskać dane, powinieneś również użyć opcji --skip-triggers.
Więc jeśli chcesz TYLKO dane:
mysqldump --no-create-info --skip-triggers