Felhasználói eszközök

Eszközök a webhelyen


mysql_remote_access

Ez a dokumentum egy előző változata!


MySQL szerver távoli elérése

Linux disztribúciókon a MySQL szerver alkalmazások alapértelmezésben fájl socket kapcsolattal települnek, így azokhoz nem lehet távoli gépekről kliensekkel hozzáférni. Néhány egyszerű módosítással elérhetővé tehetjük az adatbázis szerverünket például a többi szerverünk számára.

Először is keressük meg a MySQL konfigurációs fájlt, a my.cnf-t. Ez a fájl általában a /etc könyvtárban van. Nyissuk meg a kedvenc böngészőnkkel. Én például a „Joe's Own Editorral” (joe) szoktam szerkeszteni:

joe /etc/my.cnf

Keressük ki a bind-address sort és az ott látható 127.0.0.1-et (localhost) változtassuk meg a VPS IP címére. Ha bármely programunk a localhostról is el akarhatja érni, akkor egyszerűen kommentezzük ki ezt a sort a sor elejére írt # (kettőskereszt) karakterrel.

Indítsuk újra a mysql szolgáltatást:

service mysqld restart
vagy
/etc/init.d/mysqld restart

Távoli felhasználó hozzáadása

Ha a felhasználót, akinek a nevével el akarjuk érni az adatbázist nem felhasználónév.'*' névvel hoztuk létre (ahol a * a domain nevet helyettesíti, tehát bármely domainről kapcsolódhat a felhasználó), akkor szükséges lehet egy távelérésű felhasználó létrehozása.

Itt egy példa egy új adatbázis és egy hozzá kapcsolódó távoli felhasználó hozzáadására:

mysql> CREATE DATABASE tavdb;
mysql> GRANT ALL ON tavdb.* TO felhasznalonev@'202.54.10.20' IDENTIFIED BY 'JELSZO';

A második sor lényegében ennyit tesz: minden jogot (GRANT ALL) hozzárendel a „felhasznalonev” nevű felhasználóhoz, aki a 202.54.10.20 IPről csatlakozik és a JELSZO jelszót használja, a tavdb adatbázis összes táblájához.

Tűzfal beállítások

Az első felével meg is volnánk. De a tűzfalunk továbbra sem fogja az alapértelmezett 3306-os MySQL porton engedni a csatlakozást. Ehhez azt ki kell nyitni.

Linux alatt a tűzfal konzolos menedszelésére az iptables parancsot használjuk. Ennek a részletes tárgyalásába itt és most nem mennék bele, csak a port nyitásához szükséges parancsokat írom itt le.

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

Ez a parancs engedélyezi a 3306 portra történő kapcsolódást az eth0 csatolón keresztül az INPUT láncban. Nagyon fontos, hogy ha a rendszerünk alapértelmezett tűzfallal települt, vagy bármely alkalmazásunk telepített tűzfal szabályokat, akkor azoknak megfelelően kell eljárni.

Ellenőrizzük, hogy az INPUT láncban van-e már bármilyen szabály:

/sbin/iptables -L INPUT

Ha van, akkor vagy a listázott szabályba illesszük bele a port nyitást (a -A INPUT helyett -A LANCNEV, ahol az előbb listázott lánc nevét helyettesítjük a LANCNEV helyére), vagy az INPUT lánc legelejére.

Adott pozícióba illesztéshez használjuk a -I kapcsolót:

/sbin/iptables -I INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

Ha például a Centos 5.5 alapértelmezett tűzfal szabály láncába akarunk illeszteni, futtassuk ezt a parancsot:

/sbin/iptables -I RH-Firewall-1-INPUT 5 -i eth0 -p tcp --destination-port 3306 -j ACCEPT

Vegyük észre a lánc neve után az 5-ös számot. Ez azt jelenti, hogy a láncban hányadik helyre legyen beszúrva az új szabály. Ez a szám opcionális, ez esetben a lánc legtetejére kerül.

A szabály hozzáadása után mentsük el a tűzfal konfigurációt. Ez egyedi tűzfal script használata esetén nem működik. Ilyen esetben a saját tűzfal scriptünkhoz kell hozzáadni az új szabályokat.

/etc/init.d/iptables save
vagy
service iptables save

Távoli elérés MySQL klienssel

A távoli gépen a MySQL kliensnek a -h kapcsolóval tudjuk megadni az adatbázis szerver címét:

mysql -u felhasznalonev –h adatbazis_szerver_cime –p

mysql_remote_access.1361738287.txt.gz · Utolsó módosítás: 2013/12/09 18:21 (külső szerkesztés)

Eszközök az oldalon