Strona 1 z 1

import dużej bazy MySQL - 91MB

: 30 listopada 2010, 15:27
autor: goska_23
Mam problem z wgraniem/importowaniem bazy MySQL o rozmiarze nieco ponad 91MB.
Bazę chcę importować w phpmyadmin na serwerze LAMP na Debianie Lenny.
Utworzyłam w phpmyadminie nową bazę o nazwie baza111 i chcę do niej importować dane z pliku baza111.sql.gz, który ma ponad 91 MB.
PhpMyAdmin nie chce importować danych z pliku ze względu na zbyt duży rozmiar.
PhpMyAdmin standardowo importuje z plików do 2 MB.

Ta potrzeba importowania bazy wynika z przenoszenia strony www zawierającej bazę MySQL ze starej Fedory właśnie na Debiana Lenny.
Na Fedorze zrobiłam zrzut[/b]eksport[/n] bazy do pliku baza111.sql.gz i przerzuciłam plik na Debiana.

W pomocy do phpmyadmina przeczytałam, że dużą bazę można importować z poziomu mysqla.
Nie jestem pewna, jakie wydać polecenia w mysqlu, jak wejść do mysqla, jak określić, do której bazy importować dane z pliku i czy trzeba jeszcze coś ustawić w jakichś plikach konfiguracyjnych przed importowaniem z poziomu mysqla.
Pod phpmyadminem, na tym Debianie Lenny, mam jeszcze kilka innych baz MySQL i obawiam się aby dane wgrały się do właściwej bazy.

Nie jestem pewna, czy do mysqla wchodzę tak:

Kod: Zaznacz cały

mysql -u root -p
Bo dość dawno nie używałam tego? I jak określić, że importowanie do baza111 (żeby nie poszło np. do baza222), bo w pomocy wyczytałam taki kod:

Kod: Zaznacz cały

source filename.sql

Moje doświadczenie w zakresie importu większych baz MySQL to BigDump ale wtedy importowałam bazę 8MB i technika polega na dzieleniu bazy na kawałki.
Teraz mam bazę ponad 91MB i BigDumpem byłoby raczej trudno.

Bardzo proszę o poradę - podpowiedź techniki i konkretne polecenie z poziomu mysqla, żeby wgrało do dobrej bazy.

: 30 listopada 2010, 16:33
autor: Bastian
Najprościej tak:

Kod: Zaznacz cały

mysqldump --database <nazwa_bazy> > baza.sql
Odzyskujesz:

Kod: Zaznacz cały

mysql < baza.sql

Przy tej metodzie nawet nie trzeba wcześniej tworzyć bazy. Wszystko jest w:

Kod: Zaznacz cały

man mysql

: 01 grudnia 2010, 17:41
autor: goska_23
Dziękuję Bastian - nie byłam pewna czy w przypadku odzyskiwania większych baz (>2 MB) nie trzeba zrobić czegoś specjalnego - brak praktyki w tym temacie.
Udało mi się z sukcesem importować tę bazę pod mysqlem.

Niestety nie koniec kłopotów z uruchomieniem części strony działającej na bazie mysql.

Chciałabym jeszcze w tym temacie zapytać o poradę, jak sprawdzić co się dzieje ze stroną i bazą mysqlową pod przeglądarką - pomimo ustawienia w odpowiednim pliku php strony podłączenia do bazy mysqlowej ("localhost", "useroprawach_all_do_bazy", "password") nie działa otwieranie wydzielonej części strony - jest biały ekran pod przeglądarką.

Strona działa tak, że wyświetla plik logowanie.php zawierające podstronę z logowaniem (użytkownik, hasło) - powinien sprawdzać w mysqlowej bazie czy ma takiego użytkownika w bazie i sprawdzać hasło i jeśli jest poprawne to powinien otwierać właściwą podstronę. Chodzi o to, że ta podstrona nie otwiera się - tylko jest puste białe pole pod przeglądarką (zarówno Firefox jak i IE8).

Sprawdziłam, że hasło i użytkownika podłączenia bazy mysql pod stronę wpisałam poprawnie.
Stronka uruchamiana ze starej Fedory (tam gdzie cały czas i wcześniej była) działa poprawnie. Na Debianie po przeniesieniu nie działa ta część strony, która oparta jest o to podłączenie do bazy mysql.
Nie wiem jak sprawdzić co się dzieje, jak ze strony loguję się do bazy mysql i próbuję otworzyć tę podstronę dostępną po zalogowaniu?

: 01 grudnia 2010, 19:08
autor: bzyk
Miej logi i przeglądaj logi.
Co pokazuje error_log serwera apache (error_log dla tej strony)?

: 01 grudnia 2010, 19:51
autor: Bastian
Kolega bzyk słusznie rzecze. Ewentualnie możesz włączyć w php wysokie raportowanie błędów i będzie ci wyrzucać w przeglądarce, bo wygląda na to, że teraz masz informacje o błędach całkowicie wyłączoną.