Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySql]Problem z wgraniem bazy danych
Forum PHP.pl > Forum > Bazy danych > MySQL
DziobaX
Witam. Z początku chciałbym powiedzieć, że raczkuje dopiero w programowaniu itp. Mam pewien problem, ponieważ chciałem zainstalować silnik gry na domowym serwerze Krasnal 2.7(próbowałem to w WebServ i to samo), wszystko ładnie, pięknie póki nie przyszło na wgranie bazy MySql. Zrobiłem nową bazę i klikam SQL i zapodaje plik .sql(program to phpMyAdmin) i po wykonaniu wywala błąd:

Kod
zapytanie SQL:

SET @saved_cs_client = @ @character_set_client

MySQL zwrócił komunikat: Dokumentacja
#1193 - Unknown system variable 'character_set_client'

i w związku z tym jak to naprawić? Dodam jeszcze, że wgrywałem to na normalny serwer WWW i wszystko poszło sprawnie.
Z góry dzięki. Rafał
darko
Spróbuj albo zaimportować w trybie zgodności albo znajdź tę linijkę w importowanym pliku i ją zakomentuj dodając na początku -- (dwa minusy)
DziobaX
Niestety takiej opci jak tryb zgodności w wersji domowej phpMyAdmin nie znalazłem, a ta "zepsuta" linijka jest co kilka zdań a ich naprawdę jest dużo. Czekam na dalszą pomoc.
darko
To replace w jakimś edytorze i zamieniasz automatycznie wszystkie wiersze na identyczne tylko poprzedzone komentarzem. Jaką masz wersją pma? Jakoś nie wierzę, że nie ma tej opcji, zawsze była w sekcji Import i na dole Format importowanych plików. Spójrz na suggested fix, radzą dokładnie to samo (tylko poprzez analogiczny zapis /* oraz */ ), czyli zakomentowanie tych linii (i raczej import w trybie zgodności nic tutaj nie da).
DziobaX
Zrobiłem tak jak mówiłeś, czyli wstawiłem replace i -- we wszystkich liniach , ale znowu wyskakuje coś takiego, może niektóre linie niepotrzebnie potraktowałem tymi minusami
Kod
zapytanie SQL:

- - SET @saved_cs_client = @ @character_set_client

MySQL zwrócił komunikat: Dokumentacja
#1064 - Something is wrong in your syntax obok '--SET @saved_cs_client     = @@character_set_client' w linii 1
darko
hmm, wrzuć gdzieś oryginalny plik, żeby można było pobrać, sprawdzę, co się dzieje. I podaj wersję serwera mysql jaki masz w domu.
DziobaX
Proszę: Klik , a pma chyba stara bo z krasnalem 2.7, ale w webservie bylo to samo, jest to wersja 2.6.0
darko
standardowy import:
Cytat
Błąd

Zapytanie SQL:

CREATE TABLE `positions` (
`ID` int( 11 ) NOT NULL AUTO_INCREMENT ,
`type` varchar( 255 ) default NULL ,
`short_description` varchar( 255 ) default NULL ,
`long_description` longtext,
`players_positionID` varchar( 255 ) default NULL ,
`statistic_categories_group` varchar( 255 ) default NULL ,
`statistic_categories_group_long` varchar( 255 ) default NULL ,
`include_in_roster_requirements` tinyint( 3 ) default '1',
PRIMARY KEY ( `ID` ) ,
KEY `positionID_group_long` ( `players_positionID` , `statistic_categories_group` , `statistic_categories_group_long` )
) TYPE = MYISAM AUTO_INCREMENT =16;

MySQL zwrócił komunikat: Dokumentacja
#1071 - Specified key was too long; max key length is 1000 bytes


PMA 3.3.7deb5

Zobacz wątek tutaj: http://forums.phplist.com/viewtopic.php?=&p=27451 wyjaśniono tam, dlaczego tak się dzieje. Chodzi o to, że w kodowaniu utf-8 każdy znak jest liczony jako 3 bajty, więc indeks zbudowany na podstawie pól długości 255 i 255 oraz 255 razy 3 daje w sumie 2295 bajtów i przekracza dozwoloną wartość 1000. Rozwiązanie to zmiana kodowania bazy i ustawienia kodowania importu na np. ASCII lub latin, u mnie import zakończył się sukcesem w trybie ascii. Jest to ewidentny błąd projektanta bazy.

// edit
alternatywnym rozwiązaniem tylko w przypadku konieczności zachowania kodowania utf-8 jest zmiana struktury klucza i założenie go na tylko jedno z tych pól (255 x 3 = 765 < 1000 więc OK) ale uwaga, może to mieć negatywny wpływ na zachowanie bazy i należałoby tutaj zachować szczególną ostrożność.
DziobaX
Dzięki wielkie darko, bez Ciebie bym sobie nie poradził.
byczkins
Witam, mam taki problem. Chce zaimportowac baze danych przez pma, ale wyskakuje taki błąd

  1. Błąd
  2.  
  3. Zapytanie SQL:
  4.  
  5. --
  6. -- Baza danych: `smartmedia24`
  7. --
  8. -- --------------------------------------------------------
  9. --
  10. -- Struktura tabeli dla `modx_active_users`
  11. --
  12. DROP TABLE IF EXISTS `modx_active_users` ;
  13.  
  14. MySQL zwrócił komunikat: Dokumentacja
  15. #1046 - No database selected


Jak to naprawic ? W czym tkwi błąd ?
darko
@byczkins najpierw wybierz bazę, do której chcesz zaimportować dane.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.