Kom ihåg mig?
Home Menu

Menu


hjälp - Akut mysql problem

Ämnesverktyg Visningsalternativ
Oläst 2006-01-18, 19:01 #1
Conths avatar
Conth Conth är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2005
Inlägg: 908
Conth Conth är inte uppkopplad
Mycket flitig postare
Conths avatar
 
Reg.datum: Aug 2005
Inlägg: 908
Har ett litet akut problem. Fick krasch på en MyIsam tabell och har skapat om den och laddat tillbaka data. Så långt allt väl. Men nu ser jag att mina svenska tecken åäö blir fel efter re-load (=skräp)

Jag kör mysql 5 och har dumpat databasen med mysqldump db > dump

Laddar sedan med mysql db < dump och det blir fel.

Någon som har något tips ?!?
kollationering = latin1_swedish_ci (om det har betydelse??)

Exmpel: "Gullig och söt !!!", ska vara "söt" på slutet....
Conth är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-18, 20:29 #2
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
Skräptecknen är UTF-8 som tolkade som latin1, en klassiker.

Jag gissar att den dumpade filen använder UTF-8. Konvertera den till latin1 med lämpligt program och ladda om den i MySQL igen.
PeterM är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-18, 23:38 #3
Conths avatar
Conth Conth är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2005
Inlägg: 908
Conth Conth är inte uppkopplad
Mycket flitig postare
Conths avatar
 
Reg.datum: Aug 2005
Inlägg: 908
Jo jag förstår att det är UTF-8. Det får bli ett senare problem varför dumpen blev i utf-8.
Någon som har ett tips om hur jag får in mitt data konverterat tillbaka till latin1 tas tacksamt emot. Har kört fast...

Provade att köra iconv på min mysqldump-fil (iconv --from-code=UTF-8 --to-code=ISO-8859-1 hdkonto.sql > konto_latin.sql) men det dumpar:
iconv: illegal input sequence at position 128637

Känns som det BORDE vara enkelt men HUR gör jag smartast. Som sagt tacksam för konkret tips...
Conth är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-19, 01:35 #4
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
Testa iconv --from-code=UTF-8 --to-code=ISO-8859-1//TRANSLIT hdkonto.sql > konto_latin.sql

Har du tur så fungerar det. Har du otur så får du andra skräptecken eller korruption istället. Kostar inget att prova i alla fall.
PeterM är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-19, 09:59 #5
Conths avatar
Conth Conth är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2005
Inlägg: 908
Conth Conth är inte uppkopplad
Mycket flitig postare
Conths avatar
 
Reg.datum: Aug 2005
Inlägg: 908
Citat:
Originally posted by PeterM@Jan 19 2006, 02:35
Testa iconv --from-code=UTF-8 --to-code=ISO-8859-1//TRANSLIT hdkonto.sql > konto_latin.sql

Har du tur så fungerar det. Har du otur så får du andra skräptecken eller korruption istället. Kostar inget att prova i alla fall.
Tack för tipset. Satt upp ei natt och löste det tillslut genom att först ladda in UTF-8 fälten i databsen och köra ett php-script som gjorde utf8_decode() och sedan update på berörda kolumer. Känns väldigt klumpigt.

Nu måste jag göra in hemläxa så jag löser detta bättre nästa gång.

Någon som har tips?! Hur ni gör;
- Min mysqldump gav utf-8 kodning på min latin1 databas. Någon som vet vad som styr detta ?
- Idag dumpar jag hela databsen varje natt. Ibland händer det att jag vill ladda om en enskild tabell. Hur gör jag smartast för att "komma åt den" ut min stora dumpfil (nu kör jag grep på INSERT rader - känns primitivt...)
Conth är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-19, 13:02 #6
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Citat:
Originally posted by Conth@Jan 19 2006, 10:59

- Min mysqldump gav utf-8 kodning på min latin1 databas. Någon som vet vad som styr detta ?
- Idag dumpar jag hela databsen varje natt. Ibland händer det att jag vill ladda om en enskild tabell. Hur gör jag smartast för att "komma åt den" ut min stora dumpfil (nu kör jag grep på INSERT rader - känns primitivt...)
1. Din locale, dina mysql-inställningar i my.cnf, din flagga till mysqldump

2. Istället för att dumpa alla databaser i en klump gör så här:
Kod:
YEAR=`date '+%Y'`
MONTH=`date '+%B'`
DAY=`date '+%d'`
BACKUPROOT=/path/var/jag/vill/lagga/mina/filer
BACKUPDIR=${BACKUPROOT}/${YEAR}/${MONTH}/${DAY}

for db in `echo "show databases"| mysql -u<user> -p<pass> | grep -v Database`; do
  for table in `echo "show tables" | mysql -u<user> -p<pass> $db | grep -v Tables_in`; do
   BACKUPDBDIR=${BACKUPDIR}/${db}
   if [ ! -d ${BACKUPDBDIR} ]; then
    mkdir -p ${BACKUPDBDIR}
   fi
    mysqldump -u<user> -p<pass> $db $table > ${BACKUPDBDIR}/${table}
  done

done
Det här är helt otestat men bör funka.
zoran är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:53.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017