MySQL: case sensitive unter unix ausschalten

G

Gumble

Grünschnabel
hallo *
ich habe 2 Systeme: ein XP Rechner, das devel-sys, hat eine mysql db (5.0.18-nt-max) am laufen. Dieser macht keine Probleme wenn ich mit hibernate@jboss drauf zugreifen. Bei dem eigentlichen Zielsystem (Suse 10.1) mit ner 5.0.22 gibts allerdings Probleme nach dem Motto:
"Table 'xxx' doesn't exists!"
Die mysql console bestaetigt dies. Die Tabellen sind alle Gross, der Code verwendet aber Kleinbuchstaben.
Frage: wie kann ich die case sensitivity global ausschalten? Ohne die Tabellen nochmal anzulegen oder meinen src-code zu veraendern. Liegt ja anscheinend an den character sets (charsets) und collation, doch ich konnte irgendwie nix brauchbares ergoogeln :(

EDIT: hab erst was falsches gepostet,
hier der Unix Rechner:
Code:
character_set_client            latin1
character_set_connection        latin1
character_set_database          latin1
character_set_results           latin1
character_set_server            latin1
character_set_system            utf8
collation_connection            latin1_swedish_ci
collation_database              latin1_swedish_ci
collation_server                latin1_swedish_ci
und das die XP machine:
Code:
character_set_client            utf8
character_set_connection        utf8
character_set_database          utf8
character_set_results           utf8
character_set_server            utf8
character_set_system            utf8
collation_connection            utf8_general_ci
collation_database              utf8_general_ci
collation_server                utf8_general_ci
Ok, ziemlich unterschiedlich, aber sollte das nicht egal sein, umlaute verwende ich eh nicht, und die collations enden beide mit ci was case insensitiv heisst!

EDIT2:
es muss wohl mit 'lower_case_table_names' zusammenhaengen. Weiss jemand wie man das in der console setzt?

TIA :hilfe2:
 
Zuletzt bearbeitet:
Latin1 und UTF8 vertragen sich in Datenbanken normalerweise nicht. Umlaute werden nicht richtig uebernommen, genauso wie viele andere Sonderzeichen u.ae. lower_case_table_names ist genauso eine Variable, wie jede andere auch. Du kannst sie entweder in der my.cnf setzen oder per SET direkt im SQL-Server angeben (ist dann allerdings nach dem naechsten Restart der DB wieder weg).
 
ok danke
habs nun folgende my.cnf am laufen:
Code:
[mysqld]
lower_case_table_names=1

default-character-set=utf8
default-collation=utf8_general_ci

character_set_server=utf8         
collation_server=utf8_general_ci
die tabellen musste ich aber erneut bauen, nun scheint alles erstma zu gehen.
 
Zurück
Oben