Problem beim übertragen von Datenbanken auf anderen Server

Hi
Irgendwie gelingt es mit nicht eine Forumdatenbank von einem Serve rauf
einen neuen zu übertragen, vielleicht könnt ihr mir helfen.
Auf dem alten Server ist Mysql 4.xx mit LATIN Sortierung. Auf dem neuen
Mysql 5.xx mit UTF8 Sortierung.

Exportieren klappt shcon mal.
Beim importierne auf dem neuen Server gebe ich in phpmyadmin an das ich
LATIN1 Datenbank importieren will. Leider bricht der Importvorgang schon bei
der ersten Tabelle mit folgendem Fehler ab:

Fehler
SQL-Befehl:

CREATE TABLE `vb3_adminhelp` (

`adminhelpid` int( 10 ) unsigned NOT NULL AUTO_INCREMENT ,
`script` varchar( 50 ) NOT NULL default '',
`action` varchar( 255 ) NOT NULL default '',
`optionname` varchar( 100 ) NOT NULL default '',
`displayorder` smallint( 5 ) unsigned NOT NULL default '1',
`volatile` smallint( 5 ) unsigned NOT NULL default '0',
`product` varchar( 25 ) NOT NULL default '',
PRIMARY KEY ( `adminhelpid` ) ,
UNIQUE KEY `phraseunique` ( `script` , `action` , `optionname` )
) TYPE = MYISAM ;



MySQL meldet:

#1071 - Specified key was too long; max key length is 1000 bytes



Verstehe ich nicht, könnt ihr mir helfen?
fb-sw [ Mo, 16 Juli 2007 10:54 ] [ ID #1769823 ]

Re: Problem beim übertragen von Datenbanken auf anderen Server

Am 16.07.2007 10:54 schrieb B.Frank:
> Hi
> Irgendwie gelingt es mit nicht eine Forumdatenbank von einem Serve rauf
> einen neuen zu übertragen, vielleicht könnt ihr mir helfen.
> Auf dem alten Server ist Mysql 4.xx mit LATIN Sortierung. Auf dem neuen
> Mysql 5.xx mit UTF8 Sortierung.
>
Meinst Du wirklich "Sortierung" (also collatioon), oder meinst Du den
Zeichensatz (character set)?

Und: Hast Du mal nach Deinem Problem gegoogelt? Das haben wir hier
nämlcih öfter.

> Exportieren klappt shcon mal.

Mit welchem Programm?
> Beim importierne auf dem neuen Server gebe ich in phpmyadmin an das ich

Ah.
<Mantra>
Vergiss PHPMyAdmin
</Mantra>

<Lemma>
Benutze Google
</Lemma>

> LATIN1 Datenbank importieren will. Leider bricht der Importvorgang schon bei
> der ersten Tabelle mit folgendem Fehler ab:
>
> Fehler
> SQL-Befehl:
>
> CREATE TABLE `vb3_adminhelp` (
>
> `adminhelpid` int( 10 ) unsigned NOT NULL AUTO_INCREMENT ,
> `script` varchar( 50 ) NOT NULL default '',
> `action` varchar( 255 ) NOT NULL default '',
> `optionname` varchar( 100 ) NOT NULL default '',
> `displayorder` smallint( 5 ) unsigned NOT NULL default '1',
> `volatile` smallint( 5 ) unsigned NOT NULL default '0',
> `product` varchar( 25 ) NOT NULL default '',
> PRIMARY KEY ( `adminhelpid` ) ,
> UNIQUE KEY `phraseunique` ( `script` , `action` , `optionname` )
> ) TYPE = MYISAM ;
>
>
>
> MySQL meldet:
>
> #1071 - Specified key was too long; max key length is 1000 bytes
>
>
>
> Verstehe ich nicht, könnt ihr mir helfen?

Was ist daran nicht zu verstehen? MySQL hat eine maximale
Schlüssellänge von 1000 Byte (BYTE - nicht CHAR!). Du benutzt drei
Felder mit einer Gesamtlänge von (50+255+100 = ) 405 Zeichen. Also
CHAR - nicht BYTE. Gleichzeitig verlangst Du, dass Deine Daten als
UTF8 gespeichert werden. In dieser Kodierung ist aber u.U. für ein
Zeichen deutlich mehr als ein Byte erforderlich...

Wenn Du kein UTF8 brauchst, dann solltest Du einfach Latin-1 benutzen.

--
Christian
Christian Kirsch [ Mo, 16 Juli 2007 11:21 ] [ ID #1769825 ]

Re: Problem beim übertragen von Datenbanken auf anderen Server

> Wenn Du kein UTF8 brauchst, dann solltest Du einfach Latin-1 benutzen.


Danke, habe inzwischen schon gemerkt das es daran liegt. Den zeichensatz
kann ich bei den Dtaenbanken nirgends umstellen, aber die Sortierung. Dann
hats auch geklappt mit dem Import. Reicht das?
fb-sw [ Mo, 16 Juli 2007 14:51 ] [ ID #1769831 ]

Re: Problem beim übertragen von Datenbanken auf anderen Server

Am 16.07.2007 14:51 schrieb B.Frank:
>
>> Wenn Du kein UTF8 brauchst, dann solltest Du einfach Latin-1 benutzen.
>
>
> Danke, habe inzwischen schon gemerkt das es daran liegt. Den zeichensatz
> kann ich bei den Dtaenbanken nirgends umstellen, aber die Sortierung. Dann
> hats auch geklappt mit dem Import. Reicht das?
>
>
Natürlich kannst Du den Zeichensatz einstellen. Bitte lies die
Dokumentation bei dev.mysql.com/doc

Die Sortierung betrifft eben nur die Sortierung. Deshalb hatte ich
auch danach gefragt, was Du meinst.

--
Christian
Christian Kirsch [ Mo, 16 Juli 2007 15:09 ] [ ID #1769832 ]

Re: Problem beim übertragen von Datenbanken auf anderen Server

> Natürlich kannst Du den Zeichensatz einstellen. Bitte lies die
> Dokumentation bei dev.mysql.com/doc

Mit welchem Tool, mit phpmyadmin gehts aber nicht, oder?
fb-sw [ Mo, 16 Juli 2007 21:55 ] [ ID #1769841 ]

Re: Problem beim übertragen von Datenbanken auf anderen Server

"B.Frank" <fb-sw [at] gmx.de> schrieb im Newsbeitrag
news:f7ghrj$ofn$02$1 [at] news.t-online.com...
>> Natürlich kannst Du den Zeichensatz einstellen. Bitte lies die
>> Dokumentation bei dev.mysql.com/doc


Da steht es geht so:
CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;


Aber wo kann ich diese Zeile ausführen, übe rmeine Admin Oberfläche plesk
werden immer UTF8 erzeugt und nachträglich kann ich offenbar nur noch
Sortierung mit phpMyAdmin ändern
fb-sw [ Mo, 16 Juli 2007 22:00 ] [ ID #1769842 ]

Re: Problem beim übertragen von Datenbanken auf anderen Server

Am 16.07.2007 21:55 schrieb B.Frank:
>> Natürlich kannst Du den Zeichensatz einstellen. Bitte lies die
>> Dokumentation bei dev.mysql.com/doc
>
> Mit welchem Tool, mit phpmyadmin gehts aber nicht, oder?
>
>

Wie wäre es mit mysql, dem ganz normalen Kommandozeilenwerkzeug?
PHPMyAdmin benutze ich aus guten Gründen nicht.

--
Christian
Christian Kirsch [ Di, 17 Juli 2007 09:34 ] [ ID #1770828 ]

Re: Problem beim übertragenvon Datenbanken auf anderen Server

B.Frank!

> Da steht es geht so:
> CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
>
>
> Aber wo kann ich diese Zeile ausführen, übe rmeine Admin Oberfläche plesk
> werden immer UTF8 erzeugt und nachträglich kann ich offenbar nur noch
> Sortierung mit phpMyAdmin ändern

Ersetze das CREATE durch ALTER um es nachträglich zu ändern.

Bitte beachte dabei aber, dass bereits existierende Tabellen(spalten) bei
so einer Aktion ihr charset behalten! Soweit ich dein Problem gelesen
habe, ist das okay, weil der Import ja gar nicht erst anläuft. Falls
nicht: Um bereits existierende Tabellen komplett zu konvertieren, kannst
du (für jede einzelne Tabelle, nicht für die komplette Datenbank) ein
ALTER TABLE table_name CONVERT TO CHARACTER SET latin1 absetzen.


Gruß
Daniel
Daniel Fischer [ Di, 17 Juli 2007 12:43 ] [ ID #1770832 ]

Re: Problem beim bertragen von Datenbanken auf anderen Server

Am Mon, 16 Jul 2007 21:55:11 +0200 schrieb B.Frank:
> Mit welchem Tool, mit phpmyadmin gehts aber nicht, oder?

Auch mit phpMyAdmin kann man SQL Queries absetzen. Die Frage ist, ob man
das möchte...
Norbert Tretkowski [ Di, 17 Juli 2007 18:57 ] [ ID #1770840 ]

Re: Problem beim bertragen von Datenbanken auf anderen Server

Norbert Tretkowski schrieb:

> Auch mit phpMyAdmin kann man SQL Queries absetzen. Die Frage ist, ob man
> das möchte...

PHPMyAdmin hat einige Macken, zugegeben. Aber die Paranoia, die manche
Leute bezüglich dieses Tools hier an den Tag legen, erscheint mir doch
maßlos übertrieben. Ich arbeite häufig damit und komme trotz aller
Probleme, die dieses Tool (angeblich) bereitet, wunderbar damit klar.

Natürlich verwende ich dieses Tool nicht für alles. Aber um mal ein
SQL-Statement zu testen oder ein paar Änderungen an der
Datenbankdefinition vorzunehmen, eignet es sich durchaus.

Gruß. Claus
Claus Reibenstein [ Mi, 18 Juli 2007 13:22 ] [ ID #1771909 ]

Re: Problem beim bertragen von Datenbanken auf anderen Server

Am 18.07.2007 13:22 schrieb Claus Reibenstein:
> Norbert Tretkowski schrieb:
>
>> Auch mit phpMyAdmin kann man SQL Queries absetzen. Die Frage ist, ob man
>> das möchte...
>
> PHPMyAdmin hat einige Macken, zugegeben. Aber die Paranoia, die manche
> Leute bezüglich dieses Tools hier an den Tag legen, erscheint mir doch
> maßlos übertrieben. Ich arbeite häufig damit und komme trotz aller
> Probleme, die dieses Tool (angeblich) bereitet, wunderbar damit klar.
>

Vermutlich, weil Du weißt, was Du und es tun. Was eben für den größten
Teil der Leute, die hier mit Problemen mit diesem Ding aufschlagen,
nicht gilt.

> Natürlich verwende ich dieses Tool nicht für alles. Aber um mal ein
> SQL-Statement zu testen oder ein paar Änderungen an der
> Datenbankdefinition vorzunehmen, eignet es sich durchaus.

Klar. Nur dass es sich eben nicht besonders gut für die Migration von
4.x auf 5.x eignet oder für Backup/Restore. Wofür es aber viele Leute
benutzen, und dann schlagen sie hier auf. Das "Mantra" stammt aus
einer Zeit, als hier einmal pro Woche jemand jammerte, irgendwas in
MySQL "gehe" nicht - wobei sich dann jedesmal rausstellte, dass in
PHPMyAdmin eben was "nicht ging".

Deshalb rate ich den Ahnungslosen lieber prinzipiell dazu, die Finger
von dem Ding zu lassen. Und die Ahnungsvollen hören eh nicht auf mich :-)

--
Christian
Christian Kirsch [ Do, 19 Juli 2007 17:38 ] [ ID #1772985 ]
Datenbanken » de.comp.datenbanken.mysql » Problem beim übertragen von Datenbanken auf anderen Server

Vorheriges Thema: delete from where foo where not exists
Nächstes Thema: Probleme mit Join