webForumDet fria alternativet

MySQL Export från ONE, Import på egen dator

Databaser & SQL

6 svar · 420 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Tjena
Jag har gjort en backup på en MySQL Databas från ONE, detta resulterar i en SQL fil på ~8Mb.

Nu försöker jag lägga in den i MySQL på min dator (MySQL 5.0.37) med hjälp av consollfönstret, eftersom PHP inte stöder filer >2Mb.

Detta gör jag med hjälp av:

mysql -h localhost -u root -p -v < [FILNAMN.SQL]

Detta har fungerar många gånger förut, då detta är sättet jag alltid återställer backuper på.

Men från one verkar något spöka.
På de ställen där datatypen är TEXT, så får jag det hrä felet:

ERROR 1406 (22001) at line 89: Data too long for column 'introduction_sv' at row 1

Kollar jag i CREATE scriptet för just den här tabellen, så är typen TEXT och ingen längd på fältet är angiven.

Är detta en bugg?
Eftersom det redan finns data i kolumnen, så är det inte för mycket text i den, det bör helt enkelt fungera, tycker jag.

Vore bra om någon visste vad det här beror på.

Kör MySQL 5.0.37-community-nt på Windows Vista.

Tack!

Medlem sedan mars 20007 896 inlägg
#2

Nu har jag inget svar på din fråga, men om du kan editera CREATE-delen av sql-filen, ändra typen till MEDIUMTEXT så har den möjlighet att innehålla mer data.

Medlem sedan feb. 20034 441 inlägg
#3

Jo, det är ju på många ställen, men kan köra en find->replace i min texteditor.
Frågan är om det är en bugg i antingen MySQL (eller phpMyAdmin) hos ONE, eller om det är ett fel hos mig.

Kolumnen finns ju i livedatabasen och är av samma typ och innehåller samma mängd tecken, så det hela låter konstigt.

Men jag ska testa det där imorrn när jag kommer till jobbet, tack!

Medlem sedan mars 20007 896 inlägg
#4

Ja, det låter onekligen konstigt. TEXT-fältet ska kunna innehålla minst 500 (VARCHAR(500) blir konverterat till TEXT) tecken (och max 2^16 -1). Är det en mycket äldre version som kör i live-dbms? Kan möjligtvis vara det som spökar.

Troligtvis hämtas ju kolumntyperna av PHP genom MySQL, och således borde det inte vara någon bugg i PhpMyAdmin. Troligare känns i så fall att det beror på versions-inkompabilitet hos MySQL. Har du Googlat på problemet?

Edit> Vem skapade databasen från början? Kanske sattes det en maxlängd på TEXT-kolumnen vid skapandet, men det borde inte spela någon roll ändå - eftersom att du säger att kolumnen deklareras som TEXT utan satt maxlängd?

Medlem sedan feb. 20034 441 inlägg
#5

Fan...
Såhär står det hos ONE, ang. version: 4.1.11-Debian_4sarge7-log
Jag har alltså: MySQL 5.0.37-community-nt

Nu testade jag att göra en dump från ONE, via PHP My Admin, eftersom jag inte kommer åt den via tex. konsollen.

Sen öppnade jag SQL filen i Editplus, ersatte alla TEXT med MEDIUMTEXT och sen körde filen hos mig genom konsollen.

Fortf. samma sak,

ERROR 1406 (22001) at line 91: Data too long for column 'introduction_sv' at row 1

Ändrade alla MEDUIMTEXT till LONGTEXT, men fortfarande blir det samma fel.

Ingen annan som vet ngt om det här?

Tack!

Medlem sedan feb. 20034 441 inlägg
#6

Googlade lite och hittade det här:
http://bugs.mysql.com/bug.php?id=18908

Men förstår inte riktigt vad jag ska göra.
Ska uppgradera MySQL nu, till 5.0.45 och se om det blir annorlunda.

Medlem sedan feb. 20034 441 inlägg
#7

Uppgraderade MySQL till 5.0.45 och felet är som bortblåst.
Det var alltså en bugg.

Tack!

265 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)