Importowanie i eksportowanie baz danych w MySQL za pomocą wiersza poleceń ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
10.12.2024

Importowanie i eksportowanie baz danych w MySQL za pomocą wiersza poleceń

Zarządzanie kopiami zapasowymi i migracjami baz danych jest niezbędnym zadaniem dla każdego administratora baz danych MySQL. Korzystając z wiersza poleceń, można łatwo eksportować bazy danych do plików kopii zapasowych lub importować je do nowego środowiska. Ten przewodnik opisuje, jak importować i eksportować bazy danych w MySQL za pomocą wiersza poleceń.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że:

  • MySQL jest zainstalowany i uruchomiony na serwerze lub komputerze lokalnym.
  • Masz dostęp do terminala lub wiersza poleceń.
  • Posiadasz niezbędne dane uwierzytelniające MySQL, w tym nazwę użytkownika i hasło.

Eksportowanie baz danych za pomocą mysqldump

Narzędzie mysqldump jest standardowym narzędziem do eksportowania baz danych w MySQL. Tworzy plik .sql, który zawiera instrukcje SQL potrzebne do odtworzenia bazy danych.

1. Eksport pojedynczej bazy danych

Aby wyeksportować pojedynczą bazę danych, należy użyć następującej składni:

mysqldump -u [nazwa_użytkownika] -p [nazwa_bazy_danych] > [nazwa_pliku].sql
  • -u [nazwa_użytkownika]: Nazwa użytkownika MySQL.
  • -p: Pyta o hasło MySQL.
  • [database_name]: Nazwa bazy danych, którą chcesz wyeksportować.
  • [nazwa_pliku].sql: Nazwa pliku wyjściowego, który będzie zawierał kopię zapasową bazy danych.

Przykład:

mysqldump -u root -p mydatabase > mydatabase_backup.sql

To polecenie wyświetli monit o hasło użytkownika root i utworzy plik o nazwie mydatabase_backup.sql zawierający wszystkie dane i strukturę mydatabase.

2. Eksportowanie wielu baz danych

Aby wyeksportować wiele baz danych, należy użyć flagi –databases, a następnie nazw baz danych:

mysqldump -u [username] -p --databases [database1] [database2] > [nazwa_pliku].sql

Przykład:

mysqldump -u root -p --databases db1 db2 > multiple_databases_backup.sql

To polecenie wyeksportuje zarówno db1, jak i db2 do pliku multiple_databases_backup.sql.

3. Eksport wszystkich baz danych

Aby wyeksportować wszystkie bazy danych na serwerze MySQL, użyj flagi –all-databases:

mysqldump -u [username] -p --all-databases > all_databases_backup.sql

Przykład:

mysqldump -u root -p --all-databases > all_databases_backup.sql

Spowoduje to utworzenie pełnej kopii zapasowej wszystkich baz danych w pliku all_databases_backup.sql.

4. Eksport tylko struktury tabeli (bez danych)

Jeśli potrzebujesz tylko struktury tabel bez danych, dodaj flagę –no-data:

mysqldump -u [nazwa_użytkownika] -p --no-data [nazwa_bazy_danych] > structure_only.sql

Przykład:

mysqldump -u root -p --no-data mydatabase > structure_only.sql

5. Eksportowanie określonych tabel

Aby wyeksportować określone tabele z bazy danych, wymień je po nazwie bazy danych:

mysqldump -u [nazwa_użytkownika] -p [nazwa_bazy_danych] [tabela1] [tabela2] > [nazwa_pliku].sql

Przykład:

mysqldump -u root -p mydatabase table1 table2 > tables_backup.sql

Importowanie baz danych za pomocą mysql

Aby zaimportować bazę danych z pliku SQL, należy użyć polecenia mysql.

1. Import pojedynczej bazy danych

Aby zaimportować plik SQL do bazy danych MySQL, użyj następującego polecenia:

mysql -u [ nazwa_użytkownika ] -p [nazwa_bazy_danych] < [nazwa_pliku].sql
  • -u [nazwa_użytkownika]: Nazwa użytkownika MySQL.
  • -p: Pyta o hasło MySQL.
  • [database_name]: Nazwa bazy danych, do której zostaną zaimportowane dane.
  • [nazwa_pliku].sql: Nazwa pliku .sql do zaimportowania.

Przykład:

mysql -u root -p mydatabase < mydatabase_backup.sql

To polecenie wyświetli monit o hasło użytkownika root i zaimportuje zawartość pliku mydatabase_backup.sql do mydatabase.

2. Import do nowej bazy danych

Jeśli chcesz zaimportować dane do nowej bazy danych, musisz najpierw utworzyć bazę danych, a następnie zaimportować plik .sql.

Krok 1: Utwórz nową bazę danych.

mysql -u [username] -p -e "CREATE DATABASE [new_database_name];"

Krok 2: Zaimportuj plik .sql do nowej bazy danych.

mysql -u [nazwa_użytkownika] -p [nowa_nazwa_bazy_danych] < [nazwa_pliku].sql

Przykład:

mysql -u root -p -e "CREATE DATABASE newdatabase;"
mysql -u root -p newdatabase < mydatabase_backup.sql

3. Importowanie wszystkich baz danych

Jeśli kopia zapasowa wszystkich baz danych została utworzona przy użyciu opcji –all-databases, można zaimportować je z powrotem przy użyciu tej opcji:

mysql -u [nazwa_użytkownika] -p < all_databases_backup.sql

Przykład:

mysql -u root -p < all_databases_backup.sql

To polecenie przywróci wszystkie bazy danych zawarte w pliku all_databases_backup.sql.

Wskazówki dotyczące korzystania z mysqldump i mysql

  • Użyj kompresji: Aby zaoszczędzić miejsce na dysku i czas transferu, można skompresować plik kopii zapasowej za pomocą gzip:
    mysqldump -u root -p mydatabase | gzip > mydatabase_backup.sql.gz

    I zaimportować go:

    gunzip < mydatabase_backup.sql.gz | mysql -u root -p mydatabase
  • Weryfikacja bazy danych przed importem: Upewnij się, że baza danych, do której importujesz, jest pusta lub zawiera kompatybilne dane, aby uniknąć konfliktów.
  • Sprawdź zestaw znaków: Jeśli masz do czynienia ze znakami innymi niż ASCII, upewnij się, że eksportujesz i importujesz z prawidłowym zestawem znaków za pomocą opcji –default-character-set:
    mysqldump -u root -p --default-character-set=utf8 mydatabase > mydatabase_backup.sql
  • Obsługa błędów: Jeśli napotkasz błędy podczas importu, sprawdź typowe problemy, takie jak brakujące bazy danych lub struktury tabel i upewnij się, że plik .sql jest kompletny.

Podsumowanie

Eksportowanie i importowanie baz danych MySQL za pomocą wiersza poleceń jest proste dzięki mysqldump i mysql. Narzędzia te pozwalają na elastyczność w zarządzaniu kopiami zapasowymi, migracji baz danych między serwerami i tworzeniu eksportów tylko struktury lub danych. Rozumiejąc polecenia i ich opcje, można zapewnić płynne operacje na bazach danych i zachować integralność danych podczas transferów.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills