Skocz do zawartości
Zaloguj się, aby obserwować  
Causen

Dziwne zachowanie bazy mysql, kilka pytań.

Polecane posty

hej, moja baza mysql zaczęła się kilka dni temu dziwnie zachowywać w związku z czym mam kilka pytań typu, '"czy to możliwe że..?"' Ale najpierw krótki opis sytuacji.

 

Posiadam dwie instalacje tej samej aplikacji, na jednej sobie ją ustawiam konfigurację a potem wrzucam kopię bazy do drugiej instalacji. Działało w porządku aż do teraz. Teraz po imporcie bazy do drugiej instalacji, skrypt się rozlatuje i wyrzuca mi błędy typu..

Warning: Invalid argument supplied for foreach() in /

oraz

Warning: array_push() expects parameter 1 to be array, null given in..

 

Po zaimportowaniu tej samej bazy do instalacji z której została wyeksportowana błąd nie występuje. W związku z tym mam kilka pytań i może ktoś z dobrą znajomością mysql będzie w stanie mi pomóc.

 

Dlaczego tak się dzieje? Dlaczego nie działo się tak wcześniej? (wykonywałem operajcę eksportu bazy z jednej instalacji do drugiej dosłownie kilkadziesiąt razy i nie pojawiały się żadne błędy)

 

Czy typ danych w bazie ma coś do rzeczy? (innoDB, MylSam) Zauważyłem instalując skrypt na jednym hostingu, że wszystkie tabele w bazie mają typ innoDB, a na drugim połowa ma typ mylsam a połowa inndoDB. Czy to możliwe że typ zapisał się gdzies w plikach php i przez to rozlatuje się przy imporcie bazy? Albo że przy instalacji skryptu typ określany jest w jakiś niejednoznaczny sposób, co powoduje że dwie instalacje na tym samym hostingu różnią się od siebie i przerzut bazy nie działa?

 

Dlaczego zależnie od hostingu typ danych w bazie się różni?

 

Dodam jeszcze, że przy przerzucaniu bazy z jednego hostingu na drugi też się rozpada.

 

Pozostaje mi jeszcze, zamiast robić druga instalację przerzucić kopię wszystkich plików do innego katalogu, wgrać bazę i zobaczyć wtedy... ale póki co, macie jakiś pomysł co powoduje taki rozpierdziel?

 

...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sprawdź jakie błędy SQL wyskakują podczas wykonywania zapytań.

O ile korzystałeś z phpMyAdmina lub mysqldumpa do przerzucenia danych z jednej bazy na drugą, to podczas importu powinny zapisać się dane o silniku, ale głowy sobie nie dam za to uciąć. Dodatkowo, od bodajże MySQL 5.5 domyślnym silnikiem jest właśnie InnoDB, a nie (jak było to do tej pory) MyISAM.

Edytowano przez Glibnes (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak, zrzuty robiłem za pomocą phpmyadmina.

 

Właśnie chodzi o to, że przy imporcie mysql nie wyskakują żadne błędny, wszystko niby działa bez problemu. Aplikacja sama w sobie potem też, dane o silniku zapisują się., o to fragment z ba

Struktura tabeli dla tabeli `kjh80_activsubtype`
--
CREATE TABLE IF NOT EXISTS `kjh80_activsubtype` (
 `activesubtypeid` int(19) NOT NULL AUTO_INCREMENT,
 `activsubtype` varchar(100) DEFAULT NULL,
 `sortorderid` int(19) NOT NULL DEFAULT '0',
 `presence` int(1) NOT NULL DEFAULT '1',
 PRIMARY KEY (`activesubtypeid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

 

Ostatnio przerzut bazy w obrębie jednego serwera znowu działa jednak po eksporcie bazy do czystej instalacji na inny znowu te same błędy. Jeżeli jednak zamiast do nowej instalacji, wrzucę bazy do skopiowanej na inny serwer instalacji - działa bez problemu.

Edytowano przez Causen (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×