MYSQL csökkentett karaktertámogatás visszaállítása.
Sziasztok!
Van egy ASUS WL-500W-s routerem amin OLEG nevű Linux fremworköt tettem.
Telepítettem rá webszerver, PHP, és MYSQL-t is csomagból.
Ha megnézem PHPMYADMIN-ról, akkor azt írja, hogy csak az UTF8 és a LATIN1 támogatott csak.
Gondolom minden felesleget lekapcsoltak a csomagban, mert ugye ez csak egy ROUTER és nem egy szerver vagy asztali PC.
A kérdésem az, hogy hogyan lehet legalább a latin2 támogatást visszakapcsolni?
Kérdeztem olyan fórumon is ahol a routerrel foglalkoznak, de ott nem tudták.
Abban bízok, hogy valaki általánosan hátha tudja ezeket a kapcsolási lehetőségeket a MYSQL-ben.
Azt néztem, hogy az /opt/share/mysql/charsets/ könyvtárban ott vannak az XML-ek. A latin2 is. Nem tudom, csak sejtem, hogy ezekhez lesz valami köze.
Sőt a /opt/share/mysql/hungarian/könyvtár is ott. Nem tudom azt sem, hogy azt hol lehet állítani, hogy az ottani magyar nyelvű hibaüzeneteket használja. (de ez csak másodlagos. A fő a latin2 támogatás)
Segítségeteket előre is köszönöm.
Zoli
■ Van egy ASUS WL-500W-s routerem amin OLEG nevű Linux fremworköt tettem.
Telepítettem rá webszerver, PHP, és MYSQL-t is csomagból.
Ha megnézem PHPMYADMIN-ról, akkor azt írja, hogy csak az UTF8 és a LATIN1 támogatott csak.
Gondolom minden felesleget lekapcsoltak a csomagban, mert ugye ez csak egy ROUTER és nem egy szerver vagy asztali PC.
A kérdésem az, hogy hogyan lehet legalább a latin2 támogatást visszakapcsolni?
Kérdeztem olyan fórumon is ahol a routerrel foglalkoznak, de ott nem tudták.
Abban bízok, hogy valaki általánosan hátha tudja ezeket a kapcsolási lehetőségeket a MYSQL-ben.
Azt néztem, hogy az /opt/share/mysql/charsets/ könyvtárban ott vannak az XML-ek. A latin2 is. Nem tudom, csak sejtem, hogy ezekhez lesz valami köze.
Sőt a /opt/share/mysql/hungarian/könyvtár is ott. Nem tudom azt sem, hogy azt hol lehet állítani, hogy az ottani magyar nyelvű hibaüzeneteket használja. (de ez csak másodlagos. A fő a latin2 támogatás)
Segítségeteket előre is köszönöm.
Zoli
Piszkálj bele a konfigurációs fájlba
A mysql konfigurációs fájljában (ez az /opt/etc/mysql... környékén lesz my.cnf néven valószínűleg) add meg a character_set_server értékét (a [mysqld] "csoport" alatt):
[mysqld]
character_set_server = latin2
Ugyanott:
[mysqld]
language = /opt/share/mysql/hungarian
Kicsit bővebben: Server Command Options
Még nem megy
Köszi a segítséget.
Meg is találtam a my.cnf-et.
Nem volt benne ez, de beleraktam.
Sajnos viszont így sem megy.
Megnéztem az indítóscriptet amin elindítja a mysql-t.
Ott úgy néztem, hogy safe módot indítja.
Ez lehet a baj?
Azt már beleírtam, hogy hol van a cnf file.
extra_args="-e /opt/etc/my.cnf"
és
conf=/opt/etc/my.cnf
A start így néz ki:
Sajnos még csak most ismerkedem a Linuxszal, így csak próbálkozom.
Amúgy néztem egy másik szervert ahol van támogatás (rendes szerver).
Ott a default-chatacter-set=latin2-t találtam.
Megköszönök minden segítséget.
Zoli
Hát kizártnak tartom, hogy
Beidézed mi van még a my.cnf-ben? Mondjuk a kommentek nélkül, ha túl bő lére van eresztve...
Ezt a phpmyadmin "mondja" neked, vagy a "SHOW VARIABLES LIKE 'character%';" lekérdezés az újraindítás után?
Ez van benne
A parancsra azt adja:
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_results utf8
character_set_server latin2
character_set_system utf8
character_sets_dir /opt/share/mysql/charsets/
Viszont amikor új adatbázist akarok létrehozni akkor csak utf8 és latin1 van.
Illetve ez a két csoporton kívül a karakter-egybevetésnél is szürke a többi.
Azért írtam az indítóba két helyen, mert úgy néztem máshol keresné a my.cnf-et, ezért átírtam ideiglenesen, mert nem volt kedven másolni.
A my.cnf
Kiszedtem amire gondoltam az idítóban, de akkor is ott maradt a latin2, tehát azt visszaállítottam az eredetire. Valóban nyílván nem kell belenyúlni.
Kipróbáltam, hogy beírom ezt is a my.cnf-be:
character_set_database = latin1
de akkor nem indul el.
Akkor a konfigurációs fájlt
character_set_server latin2
...
Ez gondolom a phpmyadminban van így. Ezzel kapcsolatban nem tudok mit mondani, talán töltsd le a legfrissebb phpmyadmin-t. Ha nem "üvöltött" a latin2 (és a language=.../hungarian) miatt a konfigurációs fájlban az újraindításkor, akkor támogatja.
Nézd meg ezekre a parancsokra mit ad vissza:
set character_set_client='latin2';
set character_set_connection='latin2';
SHOW VARIABLES LIKE 'character%';
Legvégső esetben a fenti első három parancsot add ki a kódodban, mielőtt akármilyen lekérdezést végrehajtanál. Ha jól vannak megírva a cuccaid, akkor egyetlen függvénybe/metódusba kell beraknod három "mysql_query"-t, mondjuk közvetlenül a "mysql_connect" után.
Lehet?
Benyírtam először egyben amit írtál még PHA-ban.
Ezt kaptam:
Ezért csináltam egy próba táblát:
Maga a phpmyadmint is úgy telepítettem fel az OLEG FW-ből, és nem úgy mint ahogy szoktam (letöltöm a netről).
Ezek szerint nyílván a PMA-t butították, csak nem értem miért. Ezzel még nem eszik kevesebb erőforrást szerintem.
Most jön annak keresése, hogy hol lehet butítva a PMA.
Most nézem még 2.6.2-es verziót tett fel, holott már 3.1.2-nél tartunk.
Zoli
Megy!
Minden megy.
Így elsőre nem láttam olyat mintha tiltva lenne.
Lehet valami kompatibilitási hiba, vagy csak nem olyan feltűnő a különbség.
Köszi
Zoli
latin2???
kompatibilitás miatt
Mivel ahova a kódom kerül ott legtöbb helyen latin2-t használnak.
Idáig itthon a PC volt minden úgy fejlesztettem.
Most ezen a routeren szeretnék a későbbiekben.
És az lenne a jó ha valamit megcsinálok itthon akkor egy az egyben átmásolással 100%-ossan menjen.
Nem szeretnék adatbázis áthelyezéseknél bajlódni, hogy tutira jól jelenjenek meg az ékezetek a két szerver között stb., mivel általában pár percem van mindig élesíteni csak az élesen.
Tehát az élessel teljesen egyenrangú rendszert szeretnék a routeren kialakítani.
Zoli
Amennyiben csak a te kódod
set character_set_client='latin2';
set character_set_connection='latin2';
Így nem kell a szerverrel bajlódnod...