Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySql]Problem z wgraniem bazy danych
DziobaX
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.03.2011

Ostrzeżenie: (0%)
-----


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ł
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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ść.

Ten post edytował darko 25.03.2011, 20:24:30
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 23:03