Categories: Linux

Mysql und die Groß-/Kleinschreibung

Normalerweise sucht Mysql bei einer Suche mit „LIKE ‚%irgendwas%‘ “ ja unabhängig von der Groß-/Kleinschreibung!
Nur leider bei der von mir erstellten Adressdatenbank nicht…

Auf der Suche nach dem Problem bin ich auf folgende Lösung gestossen:
alter table adrdb convert to character set utf8 collate utf8_general_ci;

Das Problem lag darin dass bei einigen Tabellen der Character Set utf8 und collat utf8_bin angelegt wurden. Was man sieht wenn man mittels mysqldump und der Option „–all-databases“ einen Dump in eine Textdatei speichert und dort die genauen Definitionen betrachtet.

Bei mir sah es wie folgt aus:

CREATE TABLE `adrdb` (
`uid` bigint(11) NOT NULL auto_increment,
`firma` varchar(60) collate utf8_bin default NULL,
`titel` char(25) collate utf8_bin default NULL,
`vorname` varchar(35) collate utf8_bin default NULL,
`nachname` varchar(35) collate utf8_bin default NULL,
`strasse` char(55) collate utf8_bin default NULL,
`plz` char(10) collate utf8_bin default NULL,
`ort` char(50) collate utf8_bin default NULL,
`telefon` char(35) collate utf8_bin default NULL,
`fax` char(35) collate utf8_bin default NULL,
`mobil` char(35) collate utf8_bin default NULL,
`email` char(80) collate utf8_bin default NULL,
`webseite` char(80) collate utf8_bin default NULL,
`bemerkung` text collate utf8_bin,
`land` char(3) collate utf8_bin default NULL,
PRIMARY KEY (`uid`),
KEY `vorname` (`vorname`),
KEY `nachname` (`nachname`),
KEY `firma` (`firma`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=’Adressdatenbank‘;

Die letzte Zeile ist in dem Fall am wichtigsten, COLLATE=utf8_bin schaltet also auf Binary Modus beim Suchen um. Mit dem oben angegebenen utf8_general_ci wird auf CaseInsensitive geschaltet und somit die Groß-/Kleinschreibung nicht mehr beim Suchen berücksichtigt!

Nach der Umstellung steht in der letzten Zeile einfach folgendes:
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’Adressdatenbank‘;

Da „COLLATE=utf8_bin“ dort fehlt nehme ich an dass die Default Einstellung eigentlich korrekt ist und das Problem beim Importieren der Tabellendaten entstanden ist.

Manfred

Recent Posts

Postsible: Warum ich meinen eigenen Mail-Server gebaut habe

Ein Mail-Server-Setup das nicht nervt — weil alle anderen Lösungen nervig waren "Wie schwer kann…

1 Tag ago

M$ & Office 365 haben mir gerade wieder Lebenszeit gekostet – Error 0-2048 (0)

<Sarkasmus>Die besten Softwareentwickler arbeiten bei Microsoft!</Sarkasmus> Als Endanwender würde ich mir Fehlermeldungen erwarten die aussagekräftig…

2 Wochen ago

ESET ohne Web Access Protection Modul installieren

Auf einem Linux Server braucht man eventuell das WAP Modul von ESET nicht, der Weg…

4 Monaten ago

Veeam Agent for Linux ignoriert .vdi Files

Auf einem Linux System mit installiertem Veeam Agent wird auf File-Level Basis eine Sicherung des…

12 Monaten ago

Fujitsu RX300 S7 – RAID 5 mit amCLI reparieren

Ich habe schon länger nicht mehr hier im Blog geschrieben, was nicht daran liegt dass…

1 Jahr ago

VM – ZFS Partition online vergrößern

Man macht es nicht jeden Tag, darum schadet es nicht sich's kurz zu notieren... Hier…

3 Jahren ago