Van egy qemu virtuális gépem, és a host-on egy mysql szerver, ami csak localhost-on keresztül érhető el.
Hogyan tudom elindítani úgy a virtuális gépemet, hogy azon is elérhető legyen localhost-ról a gazdagép mysql szervere?
Próbálkoztam a -redir paraméterrel, de sajnos nem ment vele.
- 1251 megtekintés
Hozzászólások
allitsd at, hogy ne csak localhoston legyen elerheto? *ba dum tss*
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Konkrétan olyan adatbázisokat kellene rajta elérni, amikhez amúgyis csak localhostról engedélyezett a hozzáférés, tehát ha a mysql szervert meg is nyitnám egy másik címre, a probléma még nem oldódna meg. Továbbá szeretnék módosítás nélkül programokat használni a virtuális gépen is, amik szintén a localhost-on kapcsolódnak az adatbázishoz.
Ezért a legelegánsabb és legegyszerűbb az lenne, ha a guest localhoston el tudná érni a host localhoston lévő mysql szerverét.
- A hozzászóláshoz be kell jelentkezni
És akkor mondanám azt reflexből, hogy TCP socket tunnel, csakhát LAMP környezetben futottam már bele olyanba, hogy ha "localhost" van a connection stringben, akkor UNIX sockethez csatlakozik, és át kell írni "127.0.0.1"-re és/vagy "::1"-re, hogy TCP fölött menjen, stb.
- A hozzászóláshoz be kell jelentkezni
Nem akarom én kigooglizni, hogyan, de szerintem át lehet adni a qemu-n keresztül a host socket-ét a guest-nek, és azon keresztül mennie kéne localhost-ként, meg amúgy is a legpraktikusabban, mert a TCP stack is kimarad.
----------------------------------^v--------------------------------------
"Probléma esetén nyomják meg a piros gombot és nyugodjanak békében!"
- A hozzászóláshoz be kell jelentkezni
Igen, a socket paraméterrel próbálkoztam is, sajnos én belebuktam.
- A hozzászóláshoz be kell jelentkezni
Nemigazan ertem a problemadat, pusztan kenyelmi szempontok miatt lenne jo hogy a virtualis gepben is ugyanugy localhostkent lenne az alkalmazasban a megadva a mysql server cime?
Miert jo ez vagy mit szeretnel?
Az hogy beallitani ne csak localhoston figyeljen mysql nem nagy dolog, ahogy az se hogy csinalj megfelelo loginokat amivel nem localhost ip-n be lehet lepni, ellenben nem szivatod magad azzal hogy az a mysql kapcsolat, session, process amit epp latsz nem tudod olyan konnyen beazonositani hogy ki is inditotta.
- A hozzászóláshoz be kell jelentkezni
Olyan programokat akarok átmigrálni a virtuális szerverre, amik jelenleg a host gépen futnak, és szeretném elérni, hogy ne kelljen az összes áthelyezett kódot módosítani.
- A hozzászóláshoz be kell jelentkezni
Hogyha modositottad volna a db config file-okat a kodokban hogy 127.0.0.1 helyett egy masik ip-re kapcsolodjanak a mysql szerverhez mar reges regen kesz lennel :)
Most meg itt porogsz meg szivatod magad a kvm-el hogy megoldj valamit amit nem is kellene megoldanod :)
- A hozzászóláshoz be kell jelentkezni
Ez igazán építő jellegű hozzászólás! Köszönöm!
- A hozzászóláshoz be kell jelentkezni
Nem tudom mennyire volt ez szarkazmus a részedről (annak tűnt) de a probléma amit meg próbálsz oldani könnyebben megoldható volna pár sor config átírásával, feltéve a ha a kódod jól van szervezve.
MySQL-nél extra szívás a localhost kérdése. A legtöbb kliens ha localhost-ot adsz meg hostként, akkor socket fájlon keresztül fog próbálni kapcsolódni, ami nyilván nem fog menni, és hiába irányítod át sikeresen a 3306-os portot a virtuális gépre, nem fogsz tudni kapcsolódni, ha localhostot írsz be.
Megteheted azt, hogy socat-tel körbeforwardolod magad ssh-n keresztül:
http://serverfault.com/questions/127794/forward-local-port-or-socket-fi…
De szerintem (csak tipp) a hozzáférés szabályaid sem fognak működni, ha a kapcsolat 127.0.0.1-en történik, és nem local socketen.
- A hozzászóláshoz be kell jelentkezni
Csak annyiban volt szarkazmus, hogy vannak esetek, amikor a program kód módosítása túlságosan költséges. Ez egy ilyen eset. Természetes, hogy ha csak 3 konfigban kéne átírnom 3 számot, azt ennyi idő alatt ötször is megtehettem volna, de jelen esetben ez nem megy.
Amit a socketről írsz, elgondolkodtat. Ezek PHP kódok, tehát a php modul kapcsolódik a mysql szerverhez, és szerintem TCP porton keresztül.
Más környezetben már csináltam hasonló mysql távoli elérést, de ott ssh tunnellel, és ott elégnek bizonyult a 3306 port továbbítása. De ezt a localhoast és 127.0.0.1 eltérést tesztelni fogom, köszönöm!
- A hozzászóláshoz be kell jelentkezni
szerintem meg itt porogni egy semmin sokkal koltsegesebb, plusz az agysejtjeink is kiegnek a baromsagoktol
ssh tunnel, bazzeg, megy a mekkmester 1000-rel, nyomjad csak.
(arrol mar nem is beszelve hogy az a kod ahol ezek egetve vannak eleg hulladek igy latatlanban, de ez az alap, amit feltetelezek, ezen mar meg sem lepodok)
- A hozzászóláshoz be kell jelentkezni
"Ezek PHP kódok, tehát a php modul kapcsolódik a mysql szerverhez, és szerintem TCP porton keresztül."
Szerinted :)
A php modul ugyanazt a mysql client library-t használja, ami a "localhost" stringre unix socketen fog kapcsolódni, 127.0.0.1-re pedit tcp porton :)
De ha tényleg nem megoldható, akkor marad a fenti linkemben lévő javaslat. Amit mixelhetsz a qemu/kvm saját tunnelezésével.
- A hozzászóláshoz be kell jelentkezni
Nem nagyon tudom elkepzelni mi lehet koltseges egy grep -R -ben localhost, 127.0.0.1, mysql_connect es hasonlo keywordok hasznalataval ha hardcoded a mysql, illetve azoknak az illetekeseknek a felrugdosasa sem tul nagy koltseg akik nem configban taroljak a mysql hozzaferes parametereit :)))
- A hozzászóláshoz be kell jelentkezni
Ssh-n csak be tudsz menni a gépre? Mert akkor reverse ssh tunnel.
- A hozzászóláshoz be kell jelentkezni
Az a titkosítás miatt akár még fölöslegesen lassú is lehet. Kérdés, hogy kell-e titkosítás "házon belül".
- A hozzászóláshoz be kell jelentkezni
Az ssh tunnel jó ötlet, de valóban nem kell a titkosítás.
Reméltem, hogy a qemu tudja ezt valahogy, de B tervnek felveszem az ssh tunnelt, ha nem győzném le végül a qemut.
- A hozzászóláshoz be kell jelentkezni
Nem nyert ez a fordítottja. :)
De lehet meg van ami neked kell:
guestfwd=[tcp]:server:port-dev
guestfwd=[tcp]:server:port-cmd:command
Forward guest TCP connections to the IP address server on port port to the character device dev or to a program executed by cmd:command which gets spawned for each connection. This option can be given multiple times.
- A hozzászóláshoz be kell jelentkezni
-redir tcp:3600::3600
?
mik a
-net
paraméterek?
~~~~~~~~
deb http://deb.uucp.hu/ wheezy yazzy repack
- A hozzászóláshoz be kell jelentkezni
Igen, az elsők közt volt, amit kipróbáltam, de sajna nem. :(
Többféle módon is próbáltam, most épp így van a
-net nic,macaddr=$MAC,model=virtio -net tap,ifname=tap1 -redir tcp:3600::3600
- A hozzászóláshoz be kell jelentkezni
-net user,vlan=0,restrict=off,smb=./share
-net nic,model=pcnet
-redir tcp:2300::2300
igaz így a guesten anycaston nyit portot, de gondolom
tcp:2300:127.0.0.1:2300
megoldaná.
~~~~~~~~
deb http://deb.uucp.hu/ wheezy yazzy repack
- A hozzászóláshoz be kell jelentkezni
Note: Legacy stand-alone options -tftp, -bootp, -smb and -redir are still processed and applied to -net user. Mixing them with the new configuration syntax gives undefined results. Their use for new applications is discouraged as they will be removed from future versions.
ez lehet hogy
-net user
kell
~~~~~~~~
deb http://deb.uucp.hu/ wheezy yazzy repack
- A hozzászóláshoz be kell jelentkezni