Problem beim übertragen von Datenbanken auf anderen Server

Problem beim übertragen von Datenbanken auf anderen Server

am 16.07.2007 10:54:33 von fb-sw

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?

Re: Problem beim übertragen von Datenbanken auf anderen Server

am 16.07.2007 11:21:09 von Christian Kirsch

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.

Vergiss PHPMyAdmin



Benutze Google


> 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

Re: Problem beim übertragen von Datenbanken auf anderen Server

am 16.07.2007 14:51:23 von fb-sw

> 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?

Re: Problem beim übertragen von Datenbanken auf anderen Server

am 16.07.2007 15:09:28 von Christian Kirsch

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

Re: Problem beim übertragen von Datenbanken auf anderen Server

am 16.07.2007 21:55:11 von fb-sw

> 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?

Re: Problem beim übertragen von Datenbanken auf anderen Server

am 16.07.2007 22:00:19 von fb-sw

"B.Frank" schrieb im Newsbeitrag
news:f7ghrj$ofn$02$1@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

Re: Problem beim übertragen von Datenbanken auf anderen Server

am 17.07.2007 09:34:14 von Christian Kirsch

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

Re: Problem beim übertragenvon Datenbanken auf anderen Server

am 17.07.2007 12:43:26 von Daniel Fischer

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

Re: Problem beim bertragen von Datenbanken auf anderen Server

am 17.07.2007 18:57:55 von Norbert Tretkowski

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

Re: Problem beim bertragen von Datenbanken auf anderen Server

am 18.07.2007 13:22:56 von 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.

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

Re: Problem beim bertragen von Datenbanken auf anderen Server

am 19.07.2007 17:38:01 von Christian Kirsch

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