A MySQL és a Mac OS X

Megosztás az iWiW-en

Egy bejegyzés arról, hogy hogyan tudod használni Mac OS X alatt a MySQL-t (MAMP nélkül), ha a „gyári” telepítővel nem sikerült volna összehoznod a dolgot.

Régebben már próbáltam feltenni Leopard alá a MySQL-t, de mivel nem jött össze egyből és nem is volt rá túl sok időm, ezért akkor nem foglalkoztam tovább a dologgal. Szerencsére mindig volt és van a közelben néhány Linux alapú webszerver feltelepített MySQL-lel amit elérek, így nem volt annyira égető a kérdés. Aztán decemberben vásároltam egy Snow Leopard DVD-t, megpróbálkoztam a telepítéssel (nagyon negatív tapasztalat), de a szóban forgó adatbázis-kezelő az alatt sem jött össze. Bár nem a MySQL miatt, de pár órán belül visszatettem a Leopardot és folytattam mindent ott, ahol azelőtt (így gyakorlatilag lett egy teljesen újonnan telepített rendszer, ami alatt a MySQL még mindig nem akart működni).

Akik ismerik a Mac-et, azok tudják, hogy a világon talán Mac-re legegyszerűbb telepíteni bármit is. Az esetek 90%-ban megnyitjuk a .dmg fájlt, feljön egy ablak, ahol közlik velünk, hogy azt az egyetlen egy fájlt húzzuk az Applications könyvtárba és néhány másodpercen belül már indíthatjuk is a frissen telepített szoftvert. Bár néha azért előfordul, hogy parancssorban kell valamit kutyulni, de ezt egyrészt megszoktam Linux alatt, másrészt pedig nem szokott gondot okozni a parancssoros használat.

Néhány napja gondoltam egy merészet (hajnali három után néhány perccel) és kitaláltam, hogy most felteszem a MySQL-t, akármi is lesz a vége, vagy akármeddig is fog tartani. Olyan nincs, hogy nem működik rendesen. Hát tévedtem. Egy rosszul megírt alkalmazáson nem nagyon segít az, ha egy óra helyett ötöt töltünk el a telepítéssel és beállításokkal…

Mac-re – legjobb tudomásom szerint – kétféle képpen lehet feltenni a MySQL-t. Egyszer hagyományos módon fel kell telepíteni a mysql.com-ról letölthető „gyári” .dmg fájlt (csúnya kifejezés, de jelenleg nem tudok jobbat), majd a szükséges dolgokat be kell állítani. Ennek mérete (5.5.8-as MySQL) pedig kb. 82 MB-os. A másik módszer az, hogy feltesszük a MAMP-ot, ami szintén egy .dmg-ben tölthető le. Itt nem kell vesződni a beállításokkal és a MySQL mellé kapunk még jópár dolgot, viszont ez több, mint 160 MB-nyi helyet foglal (kicsomagolva több, mint 350 MB). Bár annak idején kipróbáltam a MAMP-ot, de úgy döntöttem, hogy mégegyszer nem teszek fel a gépre egy ilyen sok száz megás szörnyeteget, ne foglalja a helyet és az erőforrásokat.

Visszatérve a mysql.com-ról letölthető MySQL szerverre: a telepítéssel nincs gond, viszont a beállításnál már jobban oda kel figyelni, ugyanis az OS X alatt található Apache beállításaihoz képest a telepítő a socket fájlt teljesen máshova rakja, így eleve nem is nagyon működhet normálisan a rendszer. Aztán ha erre a logfájlok és/vagy az internet segítségével sikerült rájönnünk, akkor jön az, hogy a MySQL .dmg fájljában található MySQL.prefPane csak leállítani képes a mysqld-t, elindítani már nem (legalábbis nekem többszöri nekifutás után is ez volt a probléma). A MySQLStartupItem.pkg sem váltotta be a hozzáfűzött reményeket, így azt nem is tettem fel mégegyszer.

Tehát a lényeg, hogy socket fájlnak adjuk meg a rendes, valódi helyét az /etc/php.ini fájlban – ez a várakozásokkal ellentétben a /tmp/mysql.sock helyen található. Ezt írjuk is be a php.ini-be a következő helyre és a következő formában:

mysql.default_socket = /tmp/mysql.sock

Most adjuk ki parancssorban a

sudo apachectl restart

parancsot az Apache újraindításához, ezután pedig indítsuk el a MySQL kiszolgálót a

sudo /usr/local/mysql/bin/mysqld_safe

parancs beírásával. Most elvileg fut a mysqld. De hogy ne legyen minden ilyen egyszerű, ezért a leállítása sem olyan hétköznapi, mint Linux alatt:

sudo /usr/local/mysql/bin/mysqladmin –user=root -p shutdown

Nekem csakis a fenti módon hajlandó futni, a visszadobott hibaüzenetek számát pedig sikerült egyre redukálnom, a telepítés és beállítás több, mint 5, azaz öt órája alatt. Őszintén szólva el is ment a kedvem az OS X alatti MySQL telepítgetésektől egy jó időre…

Azért azt leírnám, hogy van olyan 2002-ben(!) írt fórumbejegyzés a neten, ahol kb. ugyanezekkel a dolgokkal küzdöttek. Magyarul kilenc év kevés volt a MySQL fejlesztőcsapatának ahhoz, hogy megváltoztassák a socket fájl default helyét és megoldják, hogy telepítés után egyből használni lehessen a MySQL-t ugyanúgy, mint sok ezer másik programot. Ezek után mindenki gondoljon ezzel kapcsolatban azt, amit akar…

Bonyolítsuk még picit, hogy később egyszerűbb legyen

Ha a telepítéssel és a beállításokkal megvagyunk és netán még a mysqld-t is sikerül elindítani / megállítani, akkor szánjunk még egy kis időt a további beállításokra, hogy később a kiszolgálót sokkal könnyebben tudjuk elindítani és leállítani.

Írjuk be a következő (valójában két sornyi) szöveget a felhasználói könyvtárunkban található .bash_profile nevű fájlba (erről bővebben az előző bejegyzésben olvashatunk).

alias mysql-start=”sudo /usr/local/mysql/bin/mysqld_safe”
alias mysql-stop=”sudo /usr/local/mysql/bin/mysqladmin –user=root -p shutdown”

Ezzel gyakorlatilag azt érjük el, hogy ha el akarjuk indítani a MySQL kiszolgálót, akkor elég lesz azt beírni a parancssorba, hogy mysql-start, a leállításához meg az, hogy mysql-stop.

A bejegyzésben említett telepítés Mac OS X Leopard (10.5.8) alatt történt, de gyaníthatóan 10.6 alatt is valami hasonló lesz a MySQL problémájára a megoldás. Minden esetre örülnék annak, hogy aki e bejegyzés alapján megpróbálja, az esetleg visszajelez egy komment vagy egy e-mail erejéig, hogy mire jutott.

Ha pedig valakinek ezek alapján sikerült életre keltenie a MySQL kiszolgálót OS X alatt, akkor egyet kattinthatna a tetszik gombra itt alul, mert nagy valószínűséggel épp most mentettem meg több órai szenvedéstől és felesleges próbálkozástól. :)

Mielőtt hozzászólnál...


Egy hozzászólás megírásakor kérlek, hogy vedd figyelembe a következőket:
  • ne írj trágár, vagy közízlést sértő szavakat
  • ne sértsd meg mások személyiségi jogait
  • ne buzdíts senkit a törvény megsértésére
  • legyél türelmes és előzékeny
Előre megköszönöm, hogy ha hozzászólsz, akkor a fentieket tiszteletben tartod.

Ha esetleg nem találnád a hozzászólásod a többi között, akkor gondolj arra, hogy az azért van, mert valószínű, hogy a fenti pontokat nem vetted figyelembe...

Itt lehet hozzászólni!