Készítse elő a MySQL vagy a MariaDB adatbázist

Készítse elő a MySQL vagy a MariaDB adatbázist

Készítse elő a MySQL vagy a MariaDB adatbázist

IoT webszerverHTTP POST IoT webszerverMySQL adatbázis. IoT webszerverPHP nyelvű IoT webszerver

Állítsa be az adatbázis-kiszolgálót

A szolgáltatáskészlet telepítése után LAMP, WAMP, MAMP o XAMPP A sorozat első cikkében leírtak szerint, vagy egyszerűen azután, hogy a megfelelő szolgáltatásokat megvalósító alkalmazások összességét a szerverként működő gépre telepítette, módosítani kell az adatbázis-kiszolgáló konfigurációjának bizonyos szempontjait. MySQL valamint olyan adatbázisok és táblák létrehozása, amelyeket a webszerveren használnak az Internet of Things eszközökről származó adatok tárolására.

Nyilvános szerver használata esetén a szolgáltató minden bizonnyal biztosít valamilyen panelt, amely közvetít a felhasználó és az adatbázis "valódi" konfigurációja között, hogy megerősítse a működés biztonságát. Ha igen, akkor olvassa el a szolgáltató által kínált utasításokat. Harmadik fél létesítményeiben üzemeltetett valós vagy virtuális szerver esetében hasonló körülmény merülhet fel, amikor azt a szolgáltató kezeli; Ha nem felügyelt szerverrel kötöttek szerződést (a szolgáltató által, a felhasználó által kezelt), az alábbi információk érvényesek.

Mivel az a fontos, hogy ismerjük azokat az utasításokat, amelyeket az adatbázis-kezelőnek kell adni, és nyilvánvaló, hogy a projekt tárgyát képező tárgyak internete eszközeinek támogatására használják, elég a konzol használatához, mivel magán az adatbázis-kiszolgálón végzett munka alkalmi lesz. Ha a felügyeleti munkaterhelés kezd növekedni, érdemes lehet, mert kényelmesebb magán a szerveren kezelőt használni, például phpMyAdmin (webböngészőből) vagy lokálisan, bár természetesen elérve az adatbázis-kiszolgálót, rendszergazdával, mint pl MySQL munkaasztal ahonnan fellépni egy haladó GUI az elmagyarázandó műveletek és sok más, ezen a cikken kívül eső műveletek, amelyek egy egész sorozatot érdemelnek.

MySQL Workbench Admin Panel

Amellett, hogy a többé-kevésbé automatikus műveleteket lehet elvégezni MySQL munkaasztal a szerveren, adatbázisokon vagy táblákon lehetőség van a feladatok "kézi" végrehajtására is teljes szkriptek vagy független parancsok írásával és végrehajtásával. SQL. Ugyanúgy, mint a szerszámmal MySQL munkaasztal, SQL külön fejezetet igényel, és ennek mélyreható ismerete elengedhetetlen lesz, ha az IoT webes munka azon része, amelyik során komolyabb figyelmet igényel a backend mint itt elmagyarázzuk.

MySQL Workbench SQL Query Editor

Mindenesetre, és természetesen a folyamatban lévő IoT-adatbázis szükséges konfigurációjának megoldására, a konzol használható.

Állítsa be a root fő MySQL rendszergazdát

Ha az adatbázis-kiszolgáló a saját gépén van, akkor először be kell állítani a szolgáltatásadminisztrátori jogosultságokat, hogy ezeknek a jogosultságoknak a felhasználásával más felhasználókat (akik viszont rendelkezhetnek velük) és adott esetben adatbázisokat és táblákat hozhatnak létre. amelyben a dolgok internete rendszerének szüksége van információra.

Fontos, hogy ügyeljen a szolgáltatáskészlet vagy a szerver telepítési folyamatára MySQL, a követett folyamattól függően, mivel sok esetben maga a telepítő lesz felelős ennek és a többi lépésnek a végrehajtásáért, és nem szükséges megismételni azokat, kivéve, ha módosítani szeretné a konfigurációt.

E feladatok végrehajtásához általában a konzollal kell dolgozni. MySQL rendszergazdaként. A mód eléréséhez használja a parancsot mysql -u root -p o sudo mysql -u root ha először használták és a telepítés során a felhasználó nincs konfigurálva root

A MySQL root felhasználó konfigurálása a konzolról

Be a Rendbe mysql -u root -p opcióval jelezve -u a felhasználónév (root) és az opcióval -p (jelszó), hogy a kulcsot le kell kérni a konzol elérésekor MySQL. A rendszerkonzolra való visszatéréshez használhatja a parancsot quit kimenni

Amint a fenti képernyőképen látható, mielőtt elhagyná a konzolt MySQL, a felhasználói jogosultságok beállításához root a parancsot használták:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '1234' WITH GRANT OPTION;
amiben:

  • minden kiváltság megadva van GRANT ALL PRIVILEGES
  • minden adatbázisban minden táblázatban ON *.*
  • a felhasználónak root elérése a szervert futtató gépről MySQL TO 'root'@'localhost'
  • 1234 jelszót használva IDENTIFIED BY '1234'
  • más felhasználók engedélyezésének engedéllyel WITH GRANT OPTION

Az adatbázis távoli kezeléséhez jogosultságokat kell biztosítani a megfelelő felhasználónak más helyekről. Az előző példában ez megengedett volt root arról a gépről érhető el, amelyen az adatbázis-kiszolgáló fut (localhost) az 'root'@'localhost', ha használják 'root'@'%' A hozzáférés bármely gépről engedélyezett.

Ha rendszergazdai jogosultságokkal rendelkezik a rendszerben, újra beállíthatja a felhasználói jelszót root de MySQL. Ehhez le kell állítani a szolgáltatást (mysql o mysqld, disztribúciótól függően), indítsa el kulcs nélkül, állítsa be az új kulcsot root és indítsa újra. Jelszó nélküli hozzáféréssel a fent leírt jogosultságok megadása is lehetséges.

  • állítsa le a szolgáltatást sudo /etc/init.d/mysql stop
  • dob MySQL kulcs nélkül, és nyissa ki a konzolt sudo mysqld_safe --skip-grant-tables &
  • hozzáférés mint «root» mysql -u root
  • változtasd meg a jelszót:
    • hozzáférés az adatbázishoz «mysql" USE mysql;
    • hozzárendelni "root» az «1234» kulcs: UPDATE user SET authentication_string=PASSWORD("1234") WHERE user="root";
    • alkalmazza az új jogosultságokat: FLUSH PRIVILEGES;
    • kilép a konzolból mysql és térjünk vissza a rendszerhez: quit
  • indítsa újra a szolgáltatást sudo /etc/init.d/mysql restart

Távoli adatbázis-hozzáférés konfigurálása

Biztonsági okokból az adatbázis-kezelő kezdeti konfigurációja MySQL nem engedélyezi a távoli hozzáférést, megváltoztatásához a konfigurációs dokumentum szerkesztése szükséges, normál esetben my.cnf, amely általában megtalálható az útvonalon /etc/mysql.

Ha használják MariaDB, amely most a "szabadabb" változata, a MySQL, bizonyára my.cnf link lesz /etc/alternatives/my.cnf ami viszont betölti a konfigurációt a használatával !includedir, az útvonaldokumentumokból /etc/mysql/mariadb.conf.d, valószínűleg a dokumentumból 50-server.cnf

Az az erőforrás, amelyet az adatbázis-kiszolgáló a távoli kérések figyelmen kívül hagyására használ, csak egy bizonyos helyről érkező kérések „meghallgatásából” áll. IP-cím amelyet a paraméter értékeként fejezünk ki bind-address (ami felváltja a klasszikust skip-networking) Amikor a cím 127.0.0.1 (localhost) csak a helyi géptől érkező kéréseket teljesítjük. Ha kommentálta a # vagy ha az érték 0.0.0.0, bármilyen címet kiszolgálunk. A külső hozzáférés engedélyezéséhez a legbiztonságosabb, ha jelezzük a IP-cím (amely lehet nyilvános vagy privát) annak a számítógépnek, amelyről eléri, általában valami ilyesmi bind-address = 192.168.1.74. Az Ön esetében ez a berendezés a alagút (átirányítás a következővel: SSH) vagy sétányként (a mag ip táblák), nehogy a szerver a hálózat ellenőrzött területén kívülre kerüljön.

MySQL adatbázis-konfiguráció a my.cnf fájl szerkesztésével (az etc mysql-ben)

A fenti képernyőképen láthatja, hogy szerkesztették my.cnf a konfigurációval MySQL a megrendelés felhasználásával sudo nano /etc/mysql/my.cnf. Abban az esetben, ha dolgozik MariaDB A szokásos konfigurációval a sorrend valami ilyesmi lenne sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf. Ahogy fentebb említettük, amint rendszergazdai jogosultságokkal rendelkezik, a GUI mint MySQL munkaasztal rendszeres adatbáziskezeléshez.

Hozza létre az adatbázisokat

Az adatbázis-kiszolgáló konfigurálása után létrehozhatók az IoT-adatok tárolására szolgáló adatbázisok és táblák. Ehhez használhat parancsokat SQL a konzolról vagy a GUI egy menedzseré.

A megrendelés CREATE DATABASE temperaturas; létrehozza a „hőmérséklet” adatbázist.. A hibák elkerülése érdekében az űrlap használható CREATE DATABASE IF NOT EXISTS base_datos_temperaturas; amely csak akkor hozza létre a „hőmérséklet_adatbázis” adatbázist, ha jelenleg nem létezik.

Hozd létre a táblázatokat

Mivel a különböző adatbázisokban lehetnek azonos nevű táblák, az egyikre hivatkozhat úgy, hogy a neve elé írja az adatbázis nevét, és mindkettőt ponttal választja el, pl. base_datos.tabla Ez a jelölés kiterjeszthető a mezők nevére is base.tabla.campo

Ha egy táblán végzett művelet során (jelen esetben létrehozásakor) kihagyjuk az adatbázis nevét, akkor a rendszer az utoljára kiválasztottra hivatkozik. Egy adott konkrét kiválasztásához használhatja a parancsot USE és adja meg a nevét USE base_datos_temperaturas;

Amikor adatbázisban táblákat hozunk létre, ugyanabban a műveletben általában az azokat alkotó mezők információi is hozzáadásra kerülnek (bár ezek későbbi módosítása is lehetséges). nem létezik a záradék hozzáadásával IF NOT EXISTS vagy éppen ellenkezőleg, csak akkor törölje a táblát, mielőtt létrehozza, ha a táblát használja DROP TABLE IF EXISTS valor_temperaturas;

A parancsokkal vagy eljárásokkal ütköző táblák vagy adatbázisok neveinek engedélyezéséhez a súlyos ékezetes jelet, amelyet néha fordított vesszőnek is neveznek, lehet a név körülölelni, és elkerülni a parancsok ütközését vagy hibáit. SQL.

Határozza meg a mezőket

A táblázat létrehozásakor hozzáadott mezőket zárójelbe helyezve és az általuk tárolt adatok típusának feltüntetésével jelzik. Az adatbázisokban jellemzően a tárgyak internetéhez csatlakozó eszközökről származó információk tárolására használt adattípusok egész számok (INT o BIGINT) tizedesjegyek (DECIMAL, DOUBLE o FLOAT) idő (DATE, TIME, DATETIME o TIMESTAMP) és szöveg (főleg VARCHAR bár vannak más hasonlók is TEXT de IoT-hez nem használják) Az adattípus után és zárójelben az adatok hossza és adott esetben a formátum vagy a pontosság szerepel.

Hozzáadásával AUTO_INCREMENT A mező definíciója jelzi az adatbázis-kezelőnek, hogy ha más nincs feltüntetve, új rekord létrehozásakor automatikusan el kell tárolni az utolsó rekord értékét plusz a hozzá tartozó növekményt (ami általában 1). mezők, amelyeket a rekordok numerikus indexeiként használnak.

A kód NOT NULL azt jelzi, hogy egy rekord mezője nem lehet üres, tárolnia kell valamilyen értéket.

Használat közben DEFAULT A táblázat mezőjének létrehozásakor ez jelzi MySQL a mező alapértelmezett értéke, feltéve, hogy új rekord hozzáadásakor vagy módosításakor nincs kifejezetten feltüntetve másik érték. Egy gyakran használt alapértelmezett érték, ebben az esetben az IoT-értékek figyelésére CURRENT_TIMESTAMP amely lehetővé teszi, hogy új rekord létrehozásakor automatikusan rögzítse az aktuális időt egy mezőben, így az adatok időben automatikusan azonosításra kerülnek.

Az adatbázis teljesítményének optimalizálása érdekében célszerű a táblázat mezőinek definíciójának végére felvenni egy olyan mezőt, amelyet indexként használunk a záradékkal. PRIMARY KEY (ID) Az azonosító az indexként kiválasztott mező.

A tábla definíciójának végén paraméterértékként megadhatja azt az adatbázis-motort, amellyel azt kezeli ENGINE a formátummal ENGINE=InnoDB; lét InnoDB az ebben az esetben választott motor.

Hozzon létre adatbázisokat, táblákat és konfiguráljon mezőket egy SQL-munkamenetben

A következő példában szereplő kód összegyűjti a rendeléseket, a szükséges lépéseket egy minimális táblával rendelkező adatbázis létrehozásához.

Készítsen biztonsági másolatot az adatbázisokról

A szerver konfigurálása és az adatbázis és a hozzá tartozó táblák létrehozása után minden készen áll az IoT csomópontok által szerzett információk tárolására. Bár ennek a cikksorozatnak a középpontjában a karbantartás nem áll, van egy kritikus adminisztratív probléma, amelyet fontos megoldani: a biztonsági mentések. A legtöbb menedzsertől, köztük phpMyAdmin y MySQL munkaasztal, biztonsági másolatok készíthetők és visszaállíthatók, de gyakori, hogy egy olyan szkriptbe foglalják, amely automatizálja őket (valószínűleg a konfigurációval és sok más dokumentummal együtt), így kényelmesebb az eszköz használata MySQLDump, egy kliens, amely általában a hagyományos telepítés része MySQL, vagy valami alternatív, mint pl MySQL Data Dumper Mit tartalmaz a megrendelés? mydumper a másolat elkészítéséhez és myloader helyreállítani

MySQLDump

A megrendelés formátuma mysqldump Nagyon egyszerű, csak a felhasználónevet kell megadni user, Jelszó password és a másolni kívánt adatbázist ill --all-databases az összes adatbázis biztonsági mentése az alábbi példában látható módon:

mysqldump --opt --user=pelaez --password=1234 --all-databases > copia.sql

Az előző példa generálja a dokumentumot copia.sql amely a parancsokat tartalmazza SQL (azaz szöveg) az összes adatbázis újraépítéséhez szükséges. Szöveges formátumban mentve a másolat sokkal többet foglal a szükségesnél, ezért általában tömörítve is történik, hogy helyet takarítson meg azon az eszközön, amelyen tárolja.

A példa paranccsal generált biztonsági másolat visszaállítható, ha az információ elveszett a műveleteket végrehajtó alábbi parancs hibája miatt SQL a dokumentum copia.sql

mysql --user=pelaez --password=1234 < copia.sql

MySQL Data Dumper

Bár az előző műveletek elegendőek lennének, nagyon gyakori a használata MySQL Data Dumper, már szinte szabvány a teljesítménye, bár nem része a mellékelt alapeszközöknek MySQL

Az alábbiak a lehetőségek mydumper leggyakrabban használtak, amelyeket logikailag ugyanannak a parancsnak a részeként kell megírni, szóközökkel elválasztva, bár ebben a szövegben az olvasás megkönnyítése érdekében sorokra vannak elválasztva:

--host polaridad.es A „polaridad.es” az adatbázis-kiszolgáló neve
--port 3306 "3306" az a portszám, amelyen a szerver figyel (alapértelmezés szerint 3306)
--user pelaez "pelaez" annak a felhasználónak a neve, akivel az adatbázist elérjük
--password 1234 Az „1234” annak a felhasználónak a jelszava, akivel az adatbázist elérjük
--database temperaturas A „hőmérsékletek” a biztonsági mentés alatt álló adatbázis neve
--no-locks ne zárolja az adatbázist a másolás során (alapértelmezés szerint zárolja)
--build-empty-files üres táblázatokat is másoljon
--compress-input tömöríti a bemenetet
--compress tömörítse a kimenetet (az eredményül kapott biztonsági másolatot)

A -val kapott biztonsági másolat visszaállításához mydumper használt myloader amelyet elsősorban a következő opciókkal használunk, amelyeket szóközzel elválasztva ugyanabban a sorrendben kell szerepeltetni:

--host polaridad.es A „polaridad.es” az adatbázis-kiszolgáló neve
--port 3306 "3306" az a portszám, amelyen a szerver figyel (alapértelmezés szerint 3306)
--user pelaez "pelaez" annak a felhasználónak a neve, akivel az adatbázist elérjük
--password 1234 Az „1234” annak a felhasználónak a jelszava, akivel az adatbázist elérjük
--directory=copia_iot Az «iot_copy» az a mappa, amelyben a következővel generált másolat található mydumper
--overwrite-tables felülírja a táblákat, még akkor is, ha már léteznek
--verbose 3 "3" a folyamat információs foka (magasabb, több üzenet)
-C használjon tömörítést az adatfolyamon

A sorozat következő (és utolsó) cikke elmagyarázza hogyan lehet a PHP programozási nyelvet felhasználni a dolgok internetéhez kapcsolódó eszközök által megszerzett információk adatbázisokban való tárolására amelyekről ebben a szövegben volt szó.

Hozzászólás Comment

Lehet, hogy lemaradtál