PDA

Zobacz pełną wersję : Import Bazy Danych w CPanelu



poisonboy
13-08-2006, 23:55
Kiedy miałem strone na pewnym serwerze zrobiłem backup bazy danych w cpanelu. Teraz chce zaimportowac bazę na innym serwerze (też w cpanelu) i importuje mi się tylko 5 tabel. Co moge zrobic żeby zaimportowac całą bazę??

poisonboy
15-08-2006, 16:29
Witam,
Gdy importuje bazę w phpmyadmin to zamiast zaimportować całej bazy importuje się tylko 1 tabela i pokazuje się błąd o treści:

"#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'default tinyint (1) NOT NULL default '0',
custom_banner_code text,
last_show ' at line 13"

Co mam zrobić żeby zaimportowała się cała baza??

stone
16-08-2006, 08:19
Możiwe że wersja bazy na którą wgrywasz nie zgadza się z tą z kórej eksportowałes.
Możesz podać nr wersji baz?

poisonboy
16-08-2006, 12:49
W pliku z którego importuje bazę pisze:
MySQL dump 9.11
oraz
Server version 4.0.25-standard
Na serwerze jest:
MySQL version 4.1.19-standard
Więc wersja jest inna. Więc wystarczy w pliku zmienić tylko wersje??
Nie będzie zła składnia czy coś innego??

stone
16-08-2006, 15:08
Najprawdopobniej błąd jest winą niezgodności baz, niestety nie umiem Ci powiedzieć co jest dokładnie źle. Spróbuj jakoś opcjami pokobinować przy eksporcie może wtedy pójdzie.

Jest jeszcze program do wgrywania baz danych bigdump który może by to wgrał.

zwiastun
16-08-2006, 15:25
Po pierwsze, to bazę trzeba dobrze wyeksportować. Niestety, ustawienia poczynione przez adminów serwerów są często takie, że szybciej sobie będzie można sobie włosy z głowy pojedynczo powyrywać, niż się prawidłowo wyeksportuje bazę. A wtedy pozostaje:
1. Przyjrzeć kodowaniu znaków w wyeksportowanym pliku (najlepiej przekodowac na iso-8859-2)
2. Sprawdzić w wyeksportowanym pliku, czy zachowano atrybut autoincrement we wszystkich tabelach, w któych być powinien, ewentualnie poprawić.
I dopiero potem importować.

Bigdump jest w istocie dobry, ale uwaga: niezbyt bezpieczny. Jeśli ktoś się dostanie do katalogu z pliczkiem i odczyta jego zawartość, to zrobi kuku lepsze niż "turki". Zatem po użyciu najlepiej skasować. Katalog z nim ochronić .htaccessem. Bezpieczeństwa nigdy dość.

poisonboy
16-08-2006, 17:13
Wyexportować już nie moge bo nie mam już konta na serwerze z którego exportowałem bazę. A o tym programie (bigdump) nie mam pojęcia, a w dodatku nie jest bezpieczny. O kodowaniu i atrybutucie autoincrement też nic za bardzo nie wiem, ale popatrze może coś poprawie. Wogule skąd wziąść ten bigdump i jak się zabezpiecza .htaccessem?

poisonboy
16-08-2006, 17:25
W tabelach różne są linijki:
gbid int(10) NOT NULL auto_increment,
lub:
id int(11) NOT NULL auto_increment,
są jeszcze linijki z (cid lub bid, group_id, aro_id, section_id na początku zamiast id lub gbid) w jeszcze innych wogule nie ma wpisu o atrubucie autoincrement. Wogule w których tabelach ma być ten atrybut??

O kodowaniu nic nie znalazłem. Jak się przekodowuje??

Mam zmieniać wersje serwera w pliku??

poisonboy
16-08-2006, 19:26
W tym komunikacie błędu przy importowaniu jest mowa o lini 13 a linia 13 to właśnie:
gbid int(10) NOT NULL auto_increment,

A przy importowaniu to kodowanie mam ustawione na utf8 a żadnych iso nie ma do wyboru.

stone
16-08-2006, 20:15
wez paczkę instalacyjną joomli w katalogu installtion/sql sa pliku z baza danych, sprawdz jak to tam wyglada i popraw i bedzie ok

poisonboy
17-08-2006, 00:01
W katalogu sql jest kilka plików i nie bardzo mogłem obczaić ale chodzi chyba o joomla_polish.sql, tak?? Więc zainstalowałem joomle i exportowałem bazę. Porównałem pliki zmieniłem tylko wersję serwera, z TYPE=MyISAM zmieniałem na ENGINE=MyISAM, jeszcze jekies komentarze byly ale nie przepisywalem ich. Po imortowaniu blad dalej wystepuje tylko ze nic sie nie importuje (zadna tabela). :) Pozniej sprobuje porownac z plikiem joomla_polish.sql.

zwiastun
17-08-2006, 00:12
A po co cokolwiek zmieniasz do instalacji w plikach .sql, jeśli nie rozumiesz, o co w tym chodzi? To jedno. Drugie, to nie są pliki do importowania przez CPanel czy phpMyAdmina. Są wykorzystywane podczas instalacji przez instalatora.

Jeśli byś je chciał wykorzystać do importu, to owszem, trzeba dokonać modyfikacji, ale tylko jednego: trzeba zastąpić wszystkie #__ na:
przyrostek_

Ten przyrostek to np. jos, cos, itp - zależnie od tego, co ewentualnie ustalisz podczas instalacji. Standardowo jest to: jos_

Bezpośrednie importowanie może spowodować błędy, jeśli źle wskażesz kodowanie w pliku źródłowym czy metodę porównywania znaków. Stąd rada Stone, by skorzystać z programiku bigdump.

stone
17-08-2006, 08:00
@poisonboy post zwiatuna zwrócił mi uwage że troszkę za duży skrót myślowy użyłem, ale tak czasem niestety się zadrza jak nie ma na wszystko wystarczająco dużo czasu.
Chodziło mi o to że właśnie w pliku joomla_polish.sql masz strukturę bazy joomli, owszem tak jak Zwiatun napisał - bez prefixa, ale jak sie go wstawi to można te zapytania bezpośrednio wstawić do bazy. Dlatego sugerowałem abyś porównał to co masz w swojej kopii z oryginałem i poprawił rożnice. I wtedy powinno być ok. Jakbyś nadal miał problem podeślimi mi Twoją baze spakowaną zip-em to zobaczę co się da zrobić

poisonboy
17-08-2006, 09:14
A po co cokolwiek zmieniasz do instalacji w plikach .sql, jeśli nie rozumiesz, o co w tym chodzi? To jedno. Drugie, to nie są pliki do importowania przez CPanel czy phpMyAdmina. Są wykorzystywane podczas instalacji przez instalatora.

Jeśli byś je chciał wykorzystać do importu, to owszem, trzeba dokonać modyfikacji, ale tylko jednego: trzeba zastąpić wszystkie #__ na:
przyrostek_

Ten przyrostek to np. jos, cos, itp - zależnie od tego, co ewentualnie ustalisz podczas instalacji. Standardowo jest to: jos_

Bezpośrednie importowanie może spowodować błędy, jeśli źle wskażesz kodowanie w pliku źródłowym czy metodę porównywania znaków. Stąd rada Stone, by skorzystać z programiku bigdump.

Ale ja nic nie zmieniałem w plikach instalacyjnych joomli (np. joomla_polish.sql) Ja tylko zainstalowałem joomla, wyexportowałem bazę po instalacji i porównałem ją sobie z moją bazą i w mojej tyroche pozmieniałem. Teraz porównam ją sobie z plikiem joomla_polish.sql (nie zważając na prefixy) i też spróbuję coś pozmieniać (w mojej bazie) a jak nie pójdzie to moją ostatnią szansą jest chyba pomoc stone - wielkie dzięki.

Mam zmieniać wersję serwera w pliku mojej bazy??

------------------------------------------------
Mam usuwać: DROP TABLE IF EXISTS jos_tabela; przy każdej tabeli??
bo w pliku joomla_polish.sql nie ma tej liniji, ale zdaje mi się że inny plik robi tą linijkę.
------------------------------------------------
Przy niektórych tabelach w pliku joomla_polish.sql jest przypisany atrybut AUTO_INCREMENT=1 - mam wstawiać go tylko do tych tabel w których on jest w pliku joomla_polish.sql czy jeszcze do jakiś innych (np. do tych których nie ma w pliku joomla_polish.sql)??

stone
17-08-2006, 10:02
Wersji nie musisz zmieniac bo to tylko komentarz

Drop-y możesz usunąć, i tak lepiej jest czyścic bazę z poziomu phpMyAdmina

Auto_increment zachowaj w takiej postaci jak jest on w Twojej kopi, gdyż jego wartość zmienia się w trakcie użytkowania

poisonboy
17-08-2006, 10:59
Jeszcze wszytkie te pola w pliku joomla_poliah.sql są W '', a u mnie nie mam wstawiać ''?? Przykładowa linijka z joomla_polish.sql:
`id` int(11) NOT NULL auto_increment,
u mnie to wygląda tak:
id int(11) NOT NULL auto_increment.

stone
17-08-2006, 12:44
tak, bo to może mieć znaczenie tylko pamiętaj że to nie jest ' tylko `

poisonboy
17-08-2006, 13:18
Dropy usunołem, z Auto_increment nic nie zmieniałem, wersji nie zmieniałem, pododawałem `` - a błąd dalej występuje tylko że importuje się znowu 5 tabel (wcześniej 0 lub 2) i jest taki komunikat:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'default NULL,
PRIMARY KEY (`cid`)
) TYPE=MyISAM' at line 9

poisonboy
17-08-2006, 13:28
Jeeeeeeeeeeeeeeeeeeeeeeeeeeee - wreszcie się udało - znalazłem błąd w 6 tabeli źle zapisałem nazwe pola i wszytko poszło. Dzięki Stone i Zwiastun za pomoc - chodziło chyba o te ``.