Hello,
Megörököltem egy webszerver kialakítást melyen sok DB localhoston van, és az oldalak kodjában localhostra hivatkoznak.
Van rá mód, hogy a localhostra érkező mysql kéréseket átirányítsuk egy másik szerverre?
Köszi.
üdv
- 2128 megtekintés
Hozzászólások
iptables port-forward?
- A hozzászóláshoz be kell jelentkezni
Szia,
Ha jól tudom socketen keresztül mennek a localhostra érkező kérések. Így erre ez a megoldás nem jó, de javítsatok ki ha tévedek.
Arra én is gondoltam ,ha valahogy be lehet konfigolni ,hogy csak tcp/ip-n keresztül menjen akkor azt már át tudom forwardolni.
üdv
- A hozzászóláshoz be kell jelentkezni
Ha semmikepp nem tudod atirni a kodot akkor nezd meg a mysql federated storage engine-jet. Azzal meg tudod oldani de mindenkeppen atirnam a kodot... (es persze konfigfile hozza ugye. hpgy a jovoben ilyen gond ne legyen).
- A hozzászóláshoz be kell jelentkezni
ssh tunneling pl:
ssh -N -L helyoport:helyidomainnev_vagy_ip:tavoliport tavolidomainnev
- A hozzászóláshoz be kell jelentkezni
Szia,
Erre is érvényes az elöbbi állítás, hogy unix socketet ez nem visz át de a localhostra érkező kapcsolatok ezen keresztöl mennek.
üdv
- A hozzászóláshoz be kell jelentkezni
--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!
- A hozzászóláshoz be kell jelentkezni
Szia,
Átfutottam gyorsban de ha jól latom ez is csak portot képes átjátszani, de részletesebben átolvasom mi is ez.
üdv
- A hozzászóláshoz be kell jelentkezni
Valoban, beneztem, socketet csak backend-en tud.
--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!
- A hozzászóláshoz be kell jelentkezni
Esetleg arra lehetőség hogy megmondnai a mysql-nek hogy soha ne használjon socketet? Ha meglehet akkor könnyű dolgom lenne már. :)
- A hozzászóláshoz be kell jelentkezni
beállíthatod a mysql-ben, hogy csak tcp/ip-n fogadjon el kapcsolódást. de kérdés, hogy a kliensek hogy vannka beállítva? tcp/ip-n kapcsoódnak localhostra, vagy scoketen keresztül?
_________________________
Hogyan?
- A hozzászóláshoz be kell jelentkezni
Szerintem tudja a socketet is.:)
- A hozzászóláshoz be kell jelentkezni
http://bugs.mysql.com/bug.php?id=31577
elmeletileg ha localhost helyett 127.0.0.1-et hasznalsz, akkor az ott leirtak szerint menni fog.
mysql proxy nem tud socketet forwardolni, csak a backendje lehet socket(tehat socketre tud tovabbkuldeni forgalmat).
irtak 1-2 bash scriptet, ami tud forwardolni socketet portra, de nem biztos, hogy 100%ig kitesztelt.
frissebb libmysql-t ne forgass, nem fogja szeretni a php, anno mar probaltam.
Tyrael
- A hozzászóláshoz be kell jelentkezni
Szia,
És a php kódok melyekben localhost-van nem 127.0.0.1? Ekkor a libmysql mivel látja a localhostot akkor egyből socketen fog tovább menni.
Köszi a választ.
üdv
- A hozzászóláshoz be kell jelentkezni
socat-tal tudsz unixsocket->tcpsocket atiranyitast, aztan celszeru mindenhol atiratni a kodot az uj cimre.
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
szerk: Elbandi megelőzött, vagy nem vettem észre hogy már beírta :)
itt
http://groups.google.com/group/hun.lists.mlf.linux/browse_thread/thread…
is ilyesmiről beszélgetnek
a socat-al pillanatok alatt megcsinalhatod, hogy
relay-ezzel a unix domain socket es mondjuk egy tavolig gep tcp
portja kozott.
Udv
Bozo
gondolom ez lehet neked is a megoldás
- A hozzászóláshoz be kell jelentkezni
+1, akar TCP akar file socket, lehet tavoli gepre forwardolni. Amugy a PHP alapbeallitasbol a file socket-et probalja megnyitni MySQL-nek, de ha a MySQL-ben kikapcsolod ezt, akkor megtalalja a TCP socketet is.
Ezert erdemes alapbol TCP/IP-t es DNS cimet hasznalni meg ha csak localhost is (mysql.example.com->127.0.0.1), kesobb egyszerubb migralni.
--
The Net is indeed vast and infinite...
http://gablog.eu
- A hozzászóláshoz be kell jelentkezni
Es a TCP kapcsolat overheadje a unix sockethez kepest??? Ez a mondat igy ebben a formaban nem igaz. Nem eri meg TCP-t hasznalni socket helyett. Konfigfilet az akalmazashoz viszont erdemes hasznalni (vagy legalabb egy db_connect.php-t vagy valami hasonlot).
- A hozzászóláshoz be kell jelentkezni
# find /php/fileok/helye -type f | xargs perl -pi -e 's/localhost/DB_szerver_ip/g'
:)
(normalis kod eseten ez apponkent 1 file lenne)
- A hozzászóláshoz be kell jelentkezni
Köszi mindenkitől az eddig válaszokat utána fogok nézni , az ötleteknek.
Ezres nagyságrendű oldalról van szó és ezt egy scriptel elég nehéz lenne kiszűrni ki hol dugta el a DB kapcsolatait és azt sem kockáztathatom ,hogy egy része esetleg jó lesz a másik pedig nem.
üdv
- A hozzászóláshoz be kell jelentkezni
grep -r mysql_connect...
- A hozzászóláshoz be kell jelentkezni
socat-tal az a baj, hogy forkol kapcsolatonkent afaik.
proxyzni nemigen tudod mysql + php kombo eseten a mysql client socketre fog menni ami szivas ebben az esetben.
Szivhatsz vele nyugodtan, de az egyetlen esszeru ut, ha atirjatok a kodot imho.
drk
- A hozzászóláshoz be kell jelentkezni
Persze hogy tudsz. Sima inetd vel is akar. En ezt a sort hasznalom BSD-n:
:root:daemon:777:/tmp/mysql.sock stream unix nowait root /usr/bin/nc nc -w 900 192.168.1.2 3306
- A hozzászóláshoz be kell jelentkezni
Szia,
Köszi a help-et, nagyon hasznos volt és eddig úgy néz ki ,hogy bevállik! Ha másnak is lesz ilyen problémája ezt mindenképp próbálja meg.
üdv
- A hozzászóláshoz be kell jelentkezni
altalam linkelt mysql bug linket megsasolhattad volna.
Tyrael
- A hozzászóláshoz be kell jelentkezni
Szia,
Olvastam de a másik megoldást választottam, azért írtam le hogy melyiket ha más is belefut ebbe a problémába akkor lássa hogy van megoldása.
üdv
- A hozzászóláshoz be kell jelentkezni
akkor jol gondoltam, hogy nem olvastad el.
ott is irtak 2 socat-os peldat arra, hogy hogyan tudsz socketet tcp-re forwardolni.
konkret peldaval.
Tyrael
- A hozzászóláshoz be kell jelentkezni