Készítse elő a MySQL vagy a MariaDB adatbázist
- Állítsa be az adatbázis-kiszolgálót
- Állítsa be a root fő MySQL rendszergazdát
- Távoli adatbázis-hozzáférés konfigurálása
- Hozza létre az adatbázisokat
- Hozd létre a táblázatokat
- Határozza meg a mezőket
- Hozzon létre adatbázisokat, táblákat és konfiguráljon mezőket egy SQL-munkamenetben
- Készítsen biztonsági másolatot az adatbázisokról
Á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.
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.
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
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 MySQLTO '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
- hozzáférés az adatbázishoz «
-
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.
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
létrehozza a „hőmérséklet” adatbázist.. A hibák elkerülése érdekében az űrlap használható temperaturas
;CREATE DATABASE IF NOT EXISTS
amely csak akkor hozza létre a „hőmérséklet_adatbázis” adatbázist, ha jelenleg nem létezik.base_datos_temperaturas
;
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 (
Az azonosító az indexként kiválasztott mező.ID
)
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
CREATE DATABASE `base_datos_temperaturas`;
CREATE DATABASE IF NOT EXISTS `base_datos_temperaturas`;
USE `base_datos_temperaturas`;
DROP TABLE IF EXISTS `calefacciones`;
CREATE TABLE IF NOT EXISTS `calefacciones`
(
`identificador` BIGINT(20) unsigned NOT NULL AUTO_INCREMENT,
`estancia` VARCHAR(32) NOT NULL DEFAULT ”,
`temperatura` FLOAT(4,2),
`fecha` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`identificador`)
)
ENGINE=InnoDB;
|
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