Adatbázis MySQL elérés

Adatbázis MySQL elérés
2021-11-26T08:12:25+01:00
2021-12-07T18:35:37+01:00
2022-10-17T06:55:40+02:00
  • Szia, István! Kérlek olvasd el az üzetetet, amit küldtem neked privátba!
    Mutasd a teljes hozzászólást!
  • Vagy pl. egy synology NAS szerver (nekem ez vált be a legjobban, használtam másik két olcsóbbat is) amit bármelyik telephelyeden (vagy otthon is) tarthatsz. Nincs vele sok dolgod, tud MySQL-t (pontosabban MariaSQL-t)  VPN-en keresztül elérhető, automatikusan a dinamikus IP-t átalakítja "<username>.synology.me" címmé.

    Ekkora forgalomra tökéletes és nem mellesleg a cég sok más feladatát is tökéletesen kiszolgállja. Egy kis cégnek szinte minden feladatát :)
    Mutasd a teljes hozzászólást!
  • Ha jól emlékszem firebase-nél nincs sql alapú lehetőség, hanem dokumentum orientált van (kb json formátum). Meg megvan adva, hogy hány írás/olvasás/törlés ingyenes egy hónapban. Mondjuk egy pár felhasználós appot szerintem kiszolgál az ingyenes is.
    Mutasd a teljes hozzászólást!
  • Bölcs döntés.

    Egyébként sebességben nem a php lesz a döntő tényező, a vékony elérési rétegedet nagyon gyorsan lefuttatja a szerver. Többet nyom a latban a szerver és a kliensek internet-kapcsolatának a sebessége, illetve a lekérdezéseid bonyolultsága.

    Nem írtad, hol vannak a kliensek, ha pl. mindenki egy épületben, akkor a legtöbbet azzal nyersz, ha a szervert is oda költözteted. 

    Ha a lekérdezések lassúak, akkor meg tudod nézni az indexeket a táblán, meg az explain-eket, hogy miért lassúak. Ha több lekérdezés megy egymás után, azt pont, hogy gyorsítani tudod a php-vel, ha ő futtatja le mindet, és egyszerre adja vissza az eredményt (nem kell kivárnod a többszöri válaszidőt). 

    Egyébként is hasznos dolog egy okos réteg fenntartása a szerveren, mert helyes tervezés mellett sokat ad a biztonsághoz. Ahelyett, hogy bármelyik (feltörhető) kliens bármilyen lekérdezést/módosítást futtathat, a php megteheti, hogy azonosítás után csak a kliensnek engedélyezett műveleteket hajtja végre.

    Ha vannak gyakori lekérdezések, amiknek az eredménye csak ritkán változik, azokat cache-elheted is.
    Mutasd a teljes hozzászólást!
  • Hali!

    Próbáld meg felismerni, hogy mi a különbség a Tudástár (konkrét programozási kérdések, megoldandó programozási problémák színtere – ahol tévesen nyitottad ezt a témát) és a Társalgó (kötetlen beszélgetések, ötletelések, eszmecserék, viták, vélemény-, javaslat- és ajánlatkérések helyszíne – ahol nyitnod kellett volna ezt a témát és ahova most áthelyeztem) között, és a jövőben új téma nyitásánál alkalmazd is ezt az ismeretet. Köszönöm.

    Mutasd a teljes hozzászólást!
  • Köszönöm, mindenkinek.

    Marad akkor a PHP>mySQL vonal.
    Mutasd a teljes hozzászólást!
  • Nem publikussá akarom tenni.

    Ez logikus, és igazad van, biztonság szempontjából egyértelműen rossz megoldás kirakni internetre az adatbázis elérését.

    Csak azt, hogy a kliens program ne php-n keresztül érje el az adatbázist, hanem a Windows kliens exe közvetlen küldje az SQL kéréseket.

    A probléma ezzel az, hogy ha azt akarod, hogy egy dekstop alkalmazás (exe) elérjen közvetlenül egy távoli adatbázist, akkor annak az elérést biztosítanod kell az alkalmazás számára (url, felhasználó név / jelszó). Ez viszont pontosan az, amit a többiek is mondanak, hogy publikussá kell tenned az adatbázist. Tehát ez itt, a fentiekkel ellentétes, technikailag ellentmondás. Ami valóban nem jó megoldás, adatbázist nem jó kell kirakni az internetre.
    A PHP azért van most az adatbázis elérésbe iktatva, hogy kifelé, ne maga az adatbázis, hanem egy webszerver legyen elérhető, ugyan úgy, mint egy közönséges web alkalmazás esetén. Annak viszont valóban semmi értelme, hogy csak azért legyen benne a PHP alapú webkiszolgáló, hogy az kizárólag egy dekstop-os alkalmazásnak közvetítsen adatokat az adatbázisból, tehát csak azt szolgálja ki. Desktop alkalmazások esetében általában az adatbázisokat vagy saját szerveren, vagy - az interneten keresztül - vpn alatt szokás elérhetővé tenni. Így adott a kellő védelem, és a gyors elérés, mindenféle közbeiktatott webszerver nélkül.

    Azért nézegetem pl az Azure jellegű szolgáltatásokat, mert úgy látom, ezeknél van lehetőség kihagyni a PHP lépést. Időben gondolom, az számít.

    Pontosan így van. Az Azure esetében lehetőséged van tenant-ként fiókot létrehoznod (bérelned), és többféle ingyenes szolgáltatás mellett (például Acitve Directory, stb.) fizetős szolgáltatásokat is igénybe tudsz venni. Ilyen esetben a desktop-os alkalmazásodnak egy Microsoft fiókra épülő OAuth alapú bejelentkezést kell implementálnia, és akkor kapcsolódhat egy az Azure által biztosított MSSQL alapú adatbázishoz (nem MySQL). Ezt ráadásul közvetlenül fogod tudni elérni, a desktop alkalmazásodból, mindenféle webszerver közbeiktatása nélkül. Viszont az Azure esetén ez típusú adatbázis szolgáltatás csak az első 30 napig ingyenes, utána - jelenleg - 200 USD / hó. A fizetős konstrukciót leszámítva azonban technikailag pontosan azt a szolgáltatást nyújtja, amire neked szükséged lehet. Az adatbázis távoli, de nem publikus, az elérése mégis közvetlen, és gyors, desktop alkalmazások esetében ideális cloud alapú megoldás. Ráadásul erre egy időben több desktop kliens alkalmazás is csatlakozhat.
    Mutasd a teljes hozzászólást!
  • Nem publikussá akarom tenni.
    Csak azt, hogy a kliens program ne php-n keresztül érje el az adatbázist, hanem a Windows kliens exe közvetlen küldje az SQL kéréseket.

    Tehát publikussá akarod tenni.
    Mutasd a teljes hozzászólást!
  • Ha bármely számítógép bárhonnan eléri az adatbázist, akkor az publikusan kint van a neten.
    Természetesen a használatához kell user/pw stb, de ettől függetlenül publikus az adatbázis szerver bárki számára.
    Pl bárki simán nekiálhat random jelszavakat tesztelni rajta.
    Vagy DDOS támadást csinálni.
    Vagy bármilyen sérülékenységét kihasználni a mysql-nek.

    Kik a felhasználók?
    Bárki az országban?
    Bárki egy adott cégnél?
    Pár telephely?
    Mutasd a teljes hozzászólást!
  • Nem publikussá akarom tenni.
    Csak azt, hogy a kliens program ne php-n keresztül érje el az adatbázist, hanem a Windows kliens exe közvetlen küldje az SQL kéréseket.

    Azért nézegetem pl az Azure jellegű szolgáltatásokat, mert úgy látom, ezeknél van lehetőség kihagyni a PHP lépést. Időben gondolom, az számít.

    Az igazán tökös dolog az lenne, hogy valami megosztott Excel szerű táblázat, aminek adatait távolról tudnám írni/olvasni.

    SharePoint asszem ezt tudja. Céloztál rá, hogy az drága. Van olcsóbb alternatíva?
    Köszönöm a válaszaid.
    Mutasd a teljes hozzászólást!
  • Akkor az elejéről...

    A MySQL minden tud ami neked kell.
    Kiszolgálja a programodat, (te írtad?) ami az adatokat olvassa, írja az adatbázisba.

    Ennél még sokkal többet tud, csak jelenleg erre van szükséged.

    A mysqladmin felületen meg tudod adminisztrálni is akár, vagy más segédprogrammal.

    Azt hogy a CPanel mit tud vagy mit nem , nagyon nem is érdekel, de ne hidd hogy ugyanaz mint ha egy szervered lenne, akár csak egy VPS, amin a gép oprendszerétől kezdve mindent te kezelsz.

    A fő biztonsági gond hogy publikussá akarod tenni a mysql szervert.

    Ha ez csak egy gyakorló program, vagy tesztelgetés akkor még ok.
    De ha pl. egy cég adatai vannak rajta akkor ne csináld!!
    Mutasd a teljes hozzászólást!
  • Nem. Ezért próbálok tájékozodni.
    Mutasd a teljes hozzászólást!
  • De ismerem, de nem használom.

    Ha te jelenleg egy tárhelyet bérelsz, gondolom anyagi okai vannak, akkor ezekre sem akarsz több százezret kifizetni a licensz dijakra.

    Tudod mennyi pl egy sharepoint?
    Mutasd a teljes hozzászólást!
  • Szóval te sem ismered ezeket a technológiákat. Azért nem irsz érdemi választ.
    Mutasd a teljes hozzászólást!
  • Verébre akarsz vadászni és te már a gépágyúkat nézegeted :)

    Miért nem hiszed el hog a MySQL-el is mindent meg tudsz csinálni akit más adatbázis kezelővel,
    de egyiknél sem az a szokás hogy magát az adatbázist nyilvánossá teszük a net felé...
    Mutasd a teljes hozzászólást!
  • Nem. Nem szeretnék saját szervert. Most tájékozódom, hogy milyen lehet lehetőségek vannak.
    Azure, SharePoint, firebase.
    Mutasd a teljes hozzászólást!
  • Végül is akarsz a saját telephelyeden saját adatbázist üzemeltetni, vagy nem?
    Mutasd a teljes hozzászólást!
  • És érdemes áttérni valami dedikált szolgáltatóra? Azure és társai? Mika z előnyei vagy hátrányai?
    Köszönöm
    Mutasd a teljes hozzászólást!
  • Akármilyen szerveren nem ajánlott direktben használni a MySQL-t.

    Természetesen szíved joga bármely bérelt szerveren kiengedni ennek ellenére a netre.

    Ehhez egy normális bérelt szerver elég.
    Ami nem egy agyonkorlátozott tárhely.
    Mutasd a teljes hozzászólást!
  • Bocs, ha nem voltam elég egyértelmű
    Jelenleg ez a folyamat:
    Windows kliens-> HTTP PHP -> MySQL
    PHP és MySQL az tárhelyszolgáltatónál van. Tehát nem dedikált szerver. CPANEL tárhely.
    Kívülről a MySQL elérést nem engedi a szolgáltató.
    Sebesség növekedés miatt szeretném kihagyni a PHP-t. Vagyis a MySQL-el nincs bajom.
    De lehet, időszerű lenne váltani valami modernebb adatbázisra vagy szolgáltatóra. De nem ismerem a mostani adatbázis technikákat.
    Amiket halottam: AZURE, firebase,
    De nem tudom eldönteni, hogy ezek jók-e nekem. Vagy esetleg váltani olyan tárhelyszolgáltatóra aki engedi a MySQL külső elérést?
    Mi számít most jó megoldásnak?
    Mutasd a teljes hozzászólást!
  • Mysql.

    Teljesen jó erre a célra.

    Mysql

    Vannak C++ C# api példák

    Mysql

    Van Mysql admin felület.

    Más egyéb kérdés?


    ui: gondolom az világ bármely részéről elrérhető kell legyen az adatbázis.
    A mysql-t ki lehetne elméletben nyitni a net felé, csak port kérdése, de nagyon erősen ellenjavalt.

    Ha a szerver akarod "piszkálni" távolról akkor lépj be a szerverre pl VPN.

    Ha egy cégnél van egy vagy több telephellyel akkor még külső szerver sem ajánlott, hiszen egy telephelynél mindenki eléri, több telephelynél meg szintén működik a VPN.

    Amúgy nem teljesen derült ki hogy tárhelyet bérelsz szimplán vagy esetleg normális VPS-t ?

    Miért akarod lecserélni a mysql-t másra?
    Mi miatt?
    Mutasd a teljes hozzászólást!
  • Jelenleg az adattárolás a következő képpen működik. Windows PC kliensen futó alkalmazás (C++) meghívja a tárhelyszolgáltatónál levő PHP fájlt, ami MySQL kérésekkel kezeli az adatokat és küldi vissza a kliensnek. Jelenlegi tárhelyszolgáltató SQL szervere külső IP címről nem piszkálható, tehát a PHP nem kihagyható.
    Adatbázisokban nem vagyok naprakész.
    Mely szolgáltatásra lenne érdemes áttérnem?
    Egy adatbázis <20 tábla. Sűrű akár másodpercenként kis csomagok. Több kliens PC.
    Első körben az ingyenesek érdekelnének, második körben a nem drágák.
    Azure? FireBase? Vagy mik vannak még? Esetleg aminek van c++ API példa.
    Extra jó lenne, ha az adatbázisnak lenne valami online táblázat megjelenítés, asszem sharepointnak láttam ilyen excel táblát.
    Köszönöm
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd