Tag: mysql

  • apache2 php5 Mysql5 10.5

    Azaz Apache-Mysql-php Leopardra. Tudom, hogy százan leírták már, de mint tudjuk ismétlés a tudás anyja. Sok szép egybe program van, ilyen a mamp pl. Azonban ma elegem lett ma a mampból. Szép, jó, hogy egyben van, de a phpmyadmin mamp kombó localhoston komolyabb dolgokra alkalmatlan. Nagyon lassú. Ráadásul ma harmadjára se tudta beimportálni az egyik dumpolt adatbázist. Ez így nem állapot, csináld Magad, ha használni akarod!

    Bártházi Andrásnak van egy tigeres leírása, ami jó, de leopardon pár dolog másképpen működik.

    Első és fontos információ, hogy az Apache2 és a php5 már telepítve vannak, egyetlen dolgunk bekapcsolni őket. A php alapból ki van kapcsolva. Bekapcsolás:

    Apache2 + PHP

    Keresse meg mindenki a kedvenc editorát, s abban nyissuk meg a /etc/apache2/httpd.conf fájlt! Nekem a kedvenc editorom jelenleg a Textmate, így én a
    sudo mate /etc/apache2/httpd.conf parancsot adtam ki.

    A fájlban a következő sort kell megkeresni:
    #LoadModule php5_module libexec/apache2/libphp5.so – Ebben pedig a #-ot ki kell, hogy töröljük. Következő induláskor így az apache már php értelmezővel indul. Ez megvan.

    VirtualHostok használatához még az alábbi sorból is vedd ki a #-et:
    #Include /private/etc/apache2/extra/httpd-vhosts.conf

    Mysql

    Ez a nagyobb falat. Bár ez se bonyolult. Töltsd le a MySQL csomagot, majd telepítsd a MySQL-t és a Startup Item csomagokat. A PrefPane nem működik, amit adnak a csomagban. Miért, nem tudom. Azonban egy leoparddal működő prefpane letölthető innen. Ezután a System Preferencesben megjelent PrefPane segítségével indíthatjuk, s állíthatjuk le a Mysql szervert (is).

    Amit én még csináltam a teljes boldogsághoz az a CocoaMysql kliens telepítése volt (nem vagyok benne 100%, hogy ez lesz az amit majd használni akarok…), szeretek parancssorban hozzáférni a dolgokhoz, de ha lehet kényelmesen is, akkor miért ne! 🙂 Ennyi röviden.

    Források: Keith Medlin, angry-fly, Bártházi András

  • latin1 táblában tárolt utf8 tartalom

    Aki nem most hozat létre adatbázisát, hanem még MySQL4, esetleg 3-mas időkben, az könnyen szembe találhatja magát a címbeli problémával:

    latin1 táblák

    Sajnos, ha a tábla latin1 kódolású, s mi utf8 tartalmat mentünk bele, akkor az így fog kinézni:

    latin1 utf8

    Ez nehezen olvasható, s gondolom senki se szeretné látogatóit kitenni egy ehhez hasonló kódolású oldal olvasásának. Feladat egyszerű, ki kell nyerni a tartalmat utf8 kódolásban, majd a tábla kódolását latin1-ről utf8-ra kell változtatni, s visszatölteni bele a tartalmat.

    Hogyan?

    A legtisztább a helyzet, ha van parancssoros hozzáférésünk, ekkor kiadjuk a
    mysqldump -u NÉV -p --database `ADATBÁZISUNK_NEVE` --default-character-set=latin1 > ADATBAZISUNK_NEVE.sql

    Így egy utf8 kódolású fájlt kapunk, amit ezután vissza kell már csak tölteni a MySQL adatbázisba. Ahol esetleg latin1 szerepel benne, azt cseréljük le utf8-ra:

    sed 's/latin1/utf8/' db.sql > db_franko.sql

    Ha pedig abszolut biztosra akarunk menni a kódolással, akkor még ezt a parancsot is kiadhatjuk (nem feltétlen szükséges):

    iconv -f utf-8 -t utf-8 db_franko.sql -c -o db_uber_franko.sql

    Ezután vissza a levesbe:

    mysql -u NÉV -p < db_uber_franko.sql

    Ha nincs a szerverhez parancssori hozzáférésünk, akkor phpmyadmin segítségével mentsük el az adatbázist/táblát, majd szintén phpmyadmin segítségével localhoston (xampp, lampp, mamp, stb.) importáljuk be utf8 (!!!) kódolással a dumpot. Ezután localban már mehet a fenti parancssori bűvészmutatvány, s az eredmény pedig mehet fel a tárhelyünkre.

    A megoldás ennyire egyszerű, de ha erre nem jön rá az ember, nem talál valami jó forrást a neten a több ezer találat között, akkor úgy jár, mint mi anno lipileevel, hogy a nem túl szép kódolású szöveget karakterenként próbáltuk átkódolni sikertelenül. A titok pedig ennyi. Hihetetlen.

    Először Derek Sivers ultrakacifántos írása volt a mankó, de valamelyik sokadik lépés után feladtam. A fenti módszer egyszerűbb volt. Az ötlet egyébként innen származik. Izgalmas volt még Rob Marscher php-s megoldása, amivel még próbálkoztam, de valamiért nem jártam sikerrel.

    A google kb 9000 találatot jelenít meg a végül sikeres utf8 stored in latin1 table keresőkifejezésre. Azt hiszem ezekszerint nem egyedi probléma, de könnyen orvosolható. 🙂