Struppi: seltsamer Fehler beim connect DBI::mysql

Ich hoffe mal, das das nichts mit meinem anderen Problem zu tun hat. Seit gestern bekomme ich auf der Konsole folgende Warnung:
File 'C:\mysql\share\charsets?.conf' not found (Errcode: 2)
Character set '#5' is not a compiled character set and is not specified in the '
C:\mysql\share\charsets\Index' file

ausreichend dafür ist schon folgender Code:
#!/usr/bin/perl -w

use DBI;
use strict;

my $SQL_USER = "*******";
my $SQL_PWD  = "******";
my $SQL_HOST = "*******";

my $DBH = DBI->connect("DBI:mysql:$SQL_HOST", $SQL_USER, $SQL_PWD, { RaiseError => 1 }
    ) or die $DBI::errstr;

Kann jemand was damit anfangen.

Ach: WinXP,
This is perl, v5.6.0 built for MSWin32-x86-multi-thread
vermutlich DBI 1.34

Struppi.

    1. http://www.google.com/search?q=Character+set+'%235'+is+not+a+compiled+character+set+and+is+not+specified+in+the&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8

      und vor allen dingen
      http://dev.mysql.com/doc/mysql/en/Problems_with_character_sets.html

      Das klingt alles sehr interessant, aber ich kapier nicht woher jetzt der Fehler kommt.
      Die mysql DB ist nicht bei mir sondern beim hoster oder liegt es an der DBI Installation?

      Mir ist nicht klar, wo ich jetzt ansetzten muss.

      Struppi.

      1. Herrlich, ich hab 2 verschiedene server bei einem Anbieter. Bei einem kommt die Fehlermeldung, beim anderen nicht.

        Beide haben, zumindest über phpMyAdmin, die gleichen Einstellungen.
        Muss ich jetzt meine ganzen Tabellen zurücksetzten?

        Irgendwelche Tipps wo ich suchen kann?

        Struppi.

  1. Hallo,

    Seit gestern bekomme ich auf der Konsole folgende Warnung:
    File 'C:\mysql\share\charsets?.conf' not found (Errcode: 2)

    ^??Das sieht komisch aus

    Character set '#5' is not a compiled character set and is not specified in the '
    C:\mysql\share\charsets\Index' file

    ^Das auch

    Entweder muss der Backslash excaped werden oder nicht. Mal so, mal so ist komisch. Üblicherweise wird, trotz Windows, ein Pfad mit / als Trennzeihen angegeben.

    Entweder ist character-sets-dir= in my.ini falsch gesetzt, oder Perl hat einen ähnlichen Bug wie PHP hier: http://bugs.php.net/bug.php?id=22083&edit=3.

    viele Grüße

    Axel

    1. Hallo,

      Entweder ist character-sets-dir= in my.ini falsch gesetzt, oder Perl hat einen ähnlichen Bug wie PHP hier: http://bugs.php.net/bug.php?id=22083&edit=3.

      Oder es existiert gar kein Charsets-Index für MySQL, wie hier http://dev.mysql.com/doc/mysql/de/Problems_with_character_sets.html angemerkt.
      ---------------------------------------------------------------------
      Posted by Götz Lohmann on March 2 2004 7:58am [Delete] [Edit]

      If you got an error like:

      File '/usr/share/mysql/charsets/?.conf' not found (Errcode: 2)
      Character set '#5' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index' file

      check if '/usr/share/mysql/charsets/Index' exists, cause the RPM package of "mysql 4.1" seem not to create one.

      the file looks like:
      ---- begin of file Index ----

      sql/share/charsets/Index

      This file lists all of the available character sets.

      Please keep this file sorted by character set number.

      big5 1
      czech 2
      dec8 3
      dos 4
      german1 5
      ...
      latin1_de 31
      ---- end of file Index ----

      take a look at http://www.mysql.com/doc/en/Charset-map.html for the full table.

      You also might look in a search engine like google to find a tarball to copy the file out in your directory. Also you might need the 'latin1.conf', 'latin2.conf', 'usa7.conf', .. in your charset directory. There is a lot xml files in the charset directory, but they don't seem to be used yet?

      Hope this might help someone.
      ---------------------------------------------------------------------

      viele Grüße

      Axel

    2. Seit gestern bekomme ich auf der Konsole folgende Warnung:
      File 'C:\mysql\share\charsets?.conf' not found (Errcode: 2)
                        ^??Das sieht komisch aus
      Character set '#5' is not a compiled character set and is not specified in the '
      C:\mysql\share\charsets\Index' file
                  ^Das auch

      Entweder muss der Backslash excaped werden oder nicht. Mal so, mal so ist komisch. Üblicherweise wird, trotz Windows, ein Pfad mit / als Trennzeihen angegeben.

      wie gesagt, ich habe gar kein mysql installiert. Ich greife auf einen server meines Hosters zu, aber beim gliechen Hoster auf einem anderen Server kommt der Fehler nicht.

      Entweder ist character-sets-dir= in my.ini falsch gesetzt, oder Perl hat einen ähnlichen Bug wie PHP hier: http://bugs.php.net/bug.php?id=22083&edit=3.

      Irgendwie begreife ich das nicht. Da ist ja auch immer von der mysql Konfiguration die rede, aber die gibt es nicht. Ich hab Perl und verbinde mit einem externen sql Server, der Fehler tritt bei dem einem auf, bei einem anderen nicht.

      Struppi.

      1. Hallo,

        Irgendwie begreife ich das nicht. Da ist ja auch immer von der mysql Konfiguration die rede, aber die gibt es nicht.

        Nein, der Bug lag im PHP, nicht im MySQL. PHP für Win32 hatte den Pfad zum MySQL-Verzeichnis hardcodiert, noch dazu falsch, als C:\mysql\ in einer DLL. Dadurch ergab sich der Pfad zu den Charsets, auch bei Standardinstallationen zu C:\mysql\share\charsets. Natürlich funktionierte eine Verschiebung des Charsets-Verzeichnisses gar nicht, weil character-sets-dir= in my.ini gar nicht ausgewertet wurde.

        Ich hab Perl und verbinde mit einem externen sql Server, der Fehler tritt bei dem einem auf, bei einem anderen nicht.

        Das selbe Perl greift auf zwei MySQL-Server zu? Dann _muss_ es an der einen, nicht funktionierenden MySQL-Installation liegen, oder? Du solltest den dafür Verantwortlichen informieren.

        viele Grüße

        Axel

        1. Ich hab Perl und verbinde mit einem externen sql Server, der Fehler tritt bei dem einem auf, bei einem anderen nicht.
          Das selbe Perl greift auf zwei MySQL-Server zu? Dann _muss_ es an der einen, nicht funktionierenden MySQL-Installation liegen, oder? Du solltest den dafür Verantwortlichen informieren.

          Ich dachte vielleicht liegt's an der DB Tabelle, aber bei beiden steht der gleiche charset.

          Tja, wochenende. aber ich werd die wohl mal infomrieren, laufen tut das ganze wenigstens.

          Struppi.