Avatar billede ej147 Nybegynder
19. januar 2014 - 15:43 Der er 31 kommentarer og
1 løsning

Import af database hos One.com

Jeg prøver at importere en database ind hos One.com men får følgende fejlmeddelse:

#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-character-set=utf8 default-collation=utf8_danish_ci' at line 1

Min database bruger utf_8_danish tegnsæt og one.com bruger utf8, men kan det virkelig gøre udslaget. Jeg kan ikke rette mit tegnsæt til at være kun utf8 og heller ikke rette hos One.com, så kender I løsningen?
Avatar billede Slater Ekspert
19. januar 2014 - 15:52 #1
Det har ikke noget med tegnsættet at gøre. For det første er UTF8 er samme tegnsæt, uanset om det er dansk eller ej. Om det er danish eller general eller hvad har kun noget med sortering at gøre.
For det andet siger beskeden at du har en syntaksfejl. En fejl i tegnsættet er ikke en syntaksfejl. Der må være noget forkert i SQL sætningen - og det behøver ikke være i det citerede. Læg mærke til at der står "near". Fejlen er ofte lige før det citerede kode.
Avatar billede arne_v Ekspert
19. januar 2014 - 16:01 #2
Maa vi se de SQL saetninger hvor du faar fejlen bare 10 linier inden og 2 efter.
Avatar billede ej147 Nybegynder
19. januar 2014 - 16:02 #3
Tak for det, undrede mig også over, hvis det var tegnsættet, den var gal med.
Kan det være fordi jeg har chekket databasen på min localhost uden brugernavn og password - og måske (jeg ved det ikke) at man hos One.com forlanger, at det skal der være for at kunne importere?
Kan det være fejlen den reagerer på?
Avatar billede ej147 Nybegynder
19. januar 2014 - 16:08 #4
Jeg har brugt dette script til at oprette min testdatabase på localhost - virker fint:


<?php
mysql_connect ("localhost", "", "");
mysql_query("create database gedebuk");
mysql_select_db ("gedebuk");
// Opretter tabel
mysql_query("CREATE TABLE counter (
id int(11) NOT NULL auto_increment,
time datetime NOT NULL default '0000-00-00 00:00:00',
ip varchar(20),
dag varchar(7),
maaned varchar(5),
aar char(3),
PRIMARY KEY (id)
)")or die(mysql_error());
?>

Og siden bruger databasen dette script til en tællerfunktion:

<?php
$user = "";
$pass = "";
$dbase = "gedebuk";
$tablecount = "counter";
$host =  "";
$hopap = mysql_connect ( $host , $user , $pass );
mysql_select_db ( $dbase );
?>

Giver det mening?
Avatar billede arne_v Ekspert
19. januar 2014 - 16:14 #5
Ja. Og?

"default-character-set" som findes i den fejl besked findes ikke i det.
Avatar billede ej147 Nybegynder
19. januar 2014 - 16:17 #6
Hm...
Kan du evt. fortælle mig hvor og i hvilket script, det skal stå?
Avatar billede ej147 Nybegynder
19. januar 2014 - 16:18 #7
Altså helt nøjagtig hvad hedder den linje der skal sættes ind hvor?
Avatar billede ej147 Nybegynder
19. januar 2014 - 17:14 #8
Jeg har rettet min fil til dette og den virker i localhost med rette tegnsæt, men jeg får stadig samme fejl

<?php
mysql_connect ("localhost", "", "");
mysql_query("create database gedebuk");
mysql_select_db ("gedebuk");
// Opretter tabel
mysql_query("CREATE TABLE counter (
id int(11) NOT NULL auto_increment,
time datetime NOT NULL default '0000-00-00 00:00:00',
ip varchar(20),
dag varchar(7),
maaned varchar(5),
aar char(3),
PRIMARY KEY (id))
ENGINE=MyISAM DEFAULT CHARSET=Utf8")
or die(mysql_error());
?>

Kan I evt. hjælpe med dette?
Avatar billede acore Ekspert
19. januar 2014 - 19:14 #9
Et vildskud: Hvis det er en ældre udgave af, sql end den du kommer fra (har ikke checket det med versionerne præcist, men det kan du finde i mysql manualen), så kan det være, at ENGINE skal laves om til TYPE.
Avatar billede ej147 Nybegynder
19. januar 2014 - 19:43 #10
Min MySqlAdmin har ver 3.5.2.2
One.com har ver 3.5.8.1

Ved du, om det er for stort et spring i version?
Avatar billede acore Ekspert
19. januar 2014 - 19:50 #11
Tror ikke den version betyder noget. Tror at du skal bruge ENGINE fra 5.5.5 og op og TYPE for lavere versioner.

Hvis du vil finde versionen fra PHP er det mysql_get_server_info().

Alternativt er det da let at afprøve.
Avatar billede ej147 Nybegynder
19. januar 2014 - 20:02 #12
Jeg kan se min programver er 5.5.27 protokolver 10
One.com har 5.1.27 protokolver 10

Har lige prøvet at importere en ny database hvor tegnsættet er korrekt begge steder, men stadig forbandede fejl???
Avatar billede ej147 Nybegynder
19. januar 2014 - 20:18 #13
Er det fuldstændig hul i hovedet at logge ind på One.com og oprette tabellerne manuelt?
Så burde der vel ikke være problemer...
Avatar billede acore Ekspert
19. januar 2014 - 21:29 #14
mysqladmin version og mysql version er ikke det samme, tror jeg.

Du prøver alt muligt - men vil ikke afprøve det jeg foreslår???
Avatar billede ej147 Nybegynder
19. januar 2014 - 21:39 #15
Åh jo, det vil jeg skam gerne, er bare ikke prof i det her.
Satte din sætning "mysql_get_server_info()" men fik dette at vide:
Ude af stand til at oprette forbindelse.
Beklager virkelig...
Avatar billede ej147 Nybegynder
19. januar 2014 - 21:47 #16
Brugte dette:

<?php
$con = mysql_connect("", "", "");
echo "MySQL server info: " . mysql_get_server_info($con);
?>

Og den siger dette:
MySQL server info: 5.5.27

Var det her korrekt?
Avatar billede ej147 Nybegynder
20. januar 2014 - 01:48 #17
Jeg er blevet klar over, at det var dumt af mig at oprette dette spørgsmål - hvilket jeg kun kan beklage.
Mit forslag er derfor, at den eller de af jer, der ønsker de udlovede point, bedes lægge et svar, så tråden kan blive lukket.
mvh.
Avatar billede acore Ekspert
20. januar 2014 - 08:02 #18
Du afgør selv om det var en fejl med dit spm, men det er da en ærlig sag at ville lære noget, og du arbejder for sagen.

Hvis du ikke vil lukke:
1) Jeg tror ikke det er pga TYPE/ENGINE, som jeg tidligere har foreslået. Du kører mySQL 5.5.27.
2) Prøv at slette
DEFAULT CHARSET=Utf8
fra koden i #8 og se om den kører
3) Hvis den ikke gør det, så prøv at ændre til
DEFAULT CHARACTER SET=Utf8
(det er den korrekte syntax iflg http://dev.mysql.com/doc/refman/5.5/en/create-table.html)
Avatar billede ej147 Nybegynder
20. januar 2014 - 15:37 #19
acore:
Jeg prøver det du foreslår - og vender tilbage.
Avatar billede ej147 Nybegynder
20. januar 2014 - 17:31 #20
acore:
Du har ret, jeg skal have lært det her, jeg skal jo bruge det.
Har lige prøvet din foreslåede ændring, men jeg kan kun oprette databasen localhost med denne:

ENGINE=MyISAM DEFAULT CHARSET=Utf8

Jeg har også prøvet at sætte CHARSET=Utf8_danish_ci men de giver også fejl.
Jeg vedhæfter dette script, det virker perfekt på localhost, men som ikke kan importeres til One.com uden fejl.

<?php
mysql_connect ("", "", "");
mysql_query("create database zerious_dk");
mysql_select_db ("zerious_dk");
// Opretter tabel
mysql_query("CREATE TABLE counter (
id int(11) NOT NULL auto_increment,
time datetime NOT NULL default '0000-00-00 00:00:00',
ip varchar(20),
dag varchar(7),
maaned varchar(5),
aar char(3),
PRIMARY KEY (id))
ENGINE=MyISAM DEFAULT CHARSET=Utf8")
or die(mysql_error());
// Udskriver til skærm
print "*********************************************<br>
      Tabellen er opretttet <br>Slet install.php fra siden<br>
      *********************************************";
?>
Avatar billede acore Ekspert
20. januar 2014 - 18:43 #21
Prøv at tage ovenstående script, der virker på localhost, og test så 2) og 3) fra mit indlæg #18.
Avatar billede ej147 Nybegynder
20. januar 2014 - 18:52 #22
Ok - prøver - vender tilbage.
Avatar billede ej147 Nybegynder
20. januar 2014 - 19:00 #23
Når jeg prøver punkt 2 bliver databasen oprettet på localhost med:
latin1_swedish_ci - hvilket jo ikke kan bruges hos One.com da de kører utf8_general_ci

Og ved at prøve punkt 3 på localhost får jeg fejlkode:

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 '=Utf8' at line 9
Avatar billede acore Ekspert
21. januar 2014 - 09:57 #24
Prøv at køre

mysql_query("SHOW CHARACTER SET");

på one for at finde ud af hvilke charset der er.
Avatar billede ej147 Nybegynder
21. januar 2014 - 13:49 #25
jeg prøver - vender tilbage.
Avatar billede ej147 Nybegynder
21. januar 2014 - 14:15 #26
One.com kører utf8_general_ci
Avatar billede acore Ekspert
21. januar 2014 - 14:48 #27
Så er det vel bare den du skal bruge på one?
Avatar billede ej147 Nybegynder
21. januar 2014 - 15:09 #28
Hvis jeg ændrer caracter set til alt andet end

ENGINE=MyISAM DEFAULT CHARSET=Utf8"

så får jeg fejl ved oprettelse af database - så desværre duer den ikke.
Avatar billede acore Ekspert
21. januar 2014 - 16:25 #29
Skrev du ikke i #8, at dette IKKE virkede på one?
Avatar billede ej147 Nybegynder
21. januar 2014 - 17:08 #30
Jo
Avatar billede acore Ekspert
22. januar 2014 - 09:22 #31
Jeg har tabt dig.

I #8 skriver du at koden IKKE virker på one og i #28 skriver du den virker.

Hvorfor kan du ikke bruge koden i #8 på one?
Avatar billede ej147 Nybegynder
22. januar 2014 - 17:31 #32
Ja, det kan jeg godt forstå.
Men nu er løsningen, at jeg indtaster tabellerne i hånden, der er heldigvis ikke så mange, så tager jeg den derfra. Det skal nok gå.
Under alle omstændigheder skal du have tusind tak, fordi du har brugt tid på det - point er afgivet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester