Jak zaimportować dużą bazę danych z pliku do MySQL

W przypadku małych plików SQL zawierających zrzut z bazy danych możemy je zaimportować np. przy użyciu narzędzia phpMyAdmin, bądź programów służących do zarządzania bazami danych takich jak: DbVisualizer czy HeidiSQL. Problemy zaczynają się kiedy plik jest sporych rozmiarów i powyższe narzędzia nie radzą sobie z nim. Możemy albo podzielić plik na mniejsze i ładować je po kolei, bądź też skorzystać z programu mysql i załadować plik sql z poziomu linii komend.

Składnia wywołania programu jest następująca:

mysql -u [user] -p < baza.sql

Zakładając, że chcemy załadować plik: baza.sql, nasza baza ma nazwę: sklep, a jej użytkownik to root polecenie wyglądać będzie następująco:

mysql -u root -p -D sklep < baza.sql

Parametry użyte w poleceniu oznaczają:
-u – nazwa użytkownika bazy danych
-p – hasło użytkownika bazy danych
-D – nazwa bazy danych

Po wydaniu polecenia zostaniemy poproszeni o wpisanie hasła, jeżeli takie zostało ustawione i nastąpi przywracanie zawartości bazy danych. Możemy oczywiście podać hasło już w momencie wywołania polecenia. Wyglądać będzie ono następująco:

mysql -u root -p M0jeTajneH@sl0 -D sklep < baza.sql

Podczas importu możemy również zdefiniować domyślnie kodowanie znaków. W naszym przykładzie będzie to: UTF-8

mysql --default-character-set=utf8 -u root -p -D sklep < plik.sql