Valmistele MySQL- tai MariaDB-tietokanta
Määritä tietokantapalvelin
Kun palvelusarja on asennettu LAMP, WAMP, mamp o XAMPP Kuten sarjan ensimmäisessä artikkelissa selitettiin tai yksinkertaisesti sen jälkeen, kun koneeseen on asennettu palvelimena toimivien sovellusten summa, jotka toteuttavat vastaavat palvelut, on tarpeen säätää joitakin tietokantapalvelimen kokoonpanon näkökohtia. MySQL sekä luoda tietokannat ja taulukot, joita käytetään web-palvelimella tietojen tallentamiseen Internet of Things -laitteista.
Jos käytetään julkista palvelinta, palveluntarjoaja on varmasti järjestänyt jonkinlaisen paneelin välittääkseen käyttäjän ja tietokannan "todellisen" konfiguraation toiminnan turvallisuuden vahvistamiseksi. Jos näin on, sinun on katsottava tämän palveluntarjoajan antamia ohjeita. Kun kyseessä on todellinen tai virtuaalinen palvelin, jota isännöidään kolmannen osapuolen tiloissa, vastaava tilanne voi syntyä, kun palveluntarjoaja hallinnoi sitä; Jos ei-hallittava palvelin on solmittu (palveluntarjoajan toimesta, käyttäjän hallinnoimasta), seuraavat tiedot ovat voimassa.
Koska tärkeätä on tietää tietokannan hallintaan annettavat ohjeet ja ymmärretään, että sitä käytetään välineenä esineiden internetin laitteiden tukemiseen, jotka olisivat projektin kohteena, voi olla riittää käyttämään konsolia, koska itse tietokantapalvelimen työ on satunnaista. Jos hallinnan työmäärä alkaa kasvaa, voi olla sen arvoista, koska on kätevämpää käyttää palvelimella itse hallintaa, kuten suosittua phpMyAdmin (verkkoselaimesta) tai paikallisesti, vaikka tietysti päästään tietokantapalvelimeen, järjestelmänvalvojan, kuten esim MySQL-työpöytä josta suorittaa edistyneen GUI selostettavat toiminnot ja monet muut, jotka ovat tämän artikkelin ulkopuolella ja jotka ansaitsevat kokonaisen sarjan.
Niiden enemmän tai vähemmän automaattisten toimintojen lisäksi, joilla voidaan tehdä MySQL-työpöytä palvelimella, tietokannoista tai taulukoista on mahdollista suorittaa tehtäviä myös "manuaalisesti" kirjoittamalla ja suorittamalla täydellisiä komentosarjoja tai itsenäisiä komentoja SQL. Sama kuin työkalun kanssa MySQL-työpöytä, SQL vaatii erillisen luvun ja joka on oleellista tietää perusteellisesti, kun IoT-verkkotyön tehtävään liittyy vakavampaa huomiota backend kuin tässä on selitetty.
Konsolia voidaan joka tapauksessa käyttää, ja tietysti käsiteltävän IoT-tietokannan tarvittavan konfiguraation ratkaisemiseksi.
Määritä pääkäyttäjä, MySQL-järjestelmänvalvoja
Jos tietokantapalvelin on omassa koneessaan, on ensin määritettävä palvelun järjestelmänvalvojan oikeudet, jotta ne voivat luoda näitä oikeuksia käyttäen muita käyttäjiä (joilla puolestaan voi olla ne) ja tarvittaessa tietokantoja ja taulukoita. johon tallennetaan esineiden internet -järjestelmän tarvitsemat tiedot.
On tärkeää huolehtia palvelujoukon tai palvelimen asennusprosessista MySQL, riippuen noudatettavasta prosessista, koska monissa tapauksissa asentaja on itse vastuussa tämän ja muiden vaiheiden suorittamisesta, eikä niitä tarvitse toistaa paitsi silloin, kun haluat muuttaa kokoonpanoa.
Suorittaaksesi nämä tehtävät, työskentelet yleensä konsolin kanssa. MySQL järjestelmänvalvojana. Pääset tähän tilaan käyttämällä komentoa mysql -u root -p
o sudo mysql -u root
jos sitä käytetään ensimmäistä kertaa ja asennuksen aikana, käyttäjää ei ole määritetty root
Tilaukseen mysql -u root -p
merkitty vaihtoehdolla -u
Käyttäjänimi (root
) ja vaihtoehdolla -p
(salasana), jonka mukaan avain on pyydettävä konsolia käytettäessä MySQL. Voit palata järjestelmäkonsoliin käyttämällä komentoa quit
mennä ulos
Kuten yllä olevasta kuvakaappauksesta näkyy, ennen kuin poistut konsolista MySQL, asettaaksesi käyttäjän oikeudet root
komentoa on käytetty:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '1234' WITH GRANT OPTION;
jossa:
- kaikki etuoikeudet myönnetään
GRANT ALL PRIVILEGES
- kaikissa taulukoissa kaikissa tietokannoissa
ON *.*
- käyttäjälle
root
pääsy koneelta, joka pyörittää palvelinta MySQLTO 'root'@'localhost'
- käyttämällä salasanana 1234
IDENTIFIED BY '1234'
- joilla on lupa valtuuttaa muita käyttäjiä
WITH GRANT OPTION
Tietokannan etähallintaa varten vastaavalle käyttäjälle on myönnettävä oikeudet muista paikoista. Edellisessä esimerkissä se oli sallittua root
käytetään koneelta, jolla tietokantapalvelin on käynnissä (localhost
) kanssa 'root'@'localhost'
, jos käytetään 'root'@'%'
Pääsy sallitaan miltä tahansa koneelta.
Jos sinulla on järjestelmänvalvojan oikeudet, voit määrittää käyttäjän salasanan uudelleen root
de MySQL. Tätä varten palvelu on lopetettava (mysql
o mysqld
, jakelusta riippuen), käynnistä se ilman avainta, aseta uusi avain root
ja käynnistä se uudelleen. Pääsyllä ilman salasanaa on myös mahdollista myöntää yllä kuvatut oikeudet.
- lopeta palvelu
sudo /etc/init.d/mysql stop
- käynnistää MySQL ilman avainta ja avaa konsolin lukitus
sudo mysqld_safe --skip-grant-tables &
- pääsy nimellä «
root
»mysql -u root
- vaihda salasana:
- pääsy tietokantaan «
mysql
»:USE mysql;
- kohdistaa «
root
» avain «1234»:UPDATE user SET authentication_string=PASSWORD("1234") WHERE user="root";
- käytä uusia oikeuksia:
FLUSH PRIVILEGES;
- poistu konsolista
mysql
ja palaa järjestelmään:quit
- pääsy tietokantaan «
-
käynnistä palvelu uudelleen
sudo /etc/init.d/mysql restart
Määritä tietokannan etäkäyttö
Turvallisuussyistä tietokannan hallintaohjelman alkukokoonpano MySQL ei salli etäkäyttöä, sen muuttamiseksi on tarpeen muokata asetusdokumenttia normaalisti my.cnf
, joka löytyy yleensä reitiltä /etc/mysql
.
Jos käytetään MariaDB, joka on nyt "vapaampi" versio MySQL, varmasti my.cnf
tulee olemaan linkki /etc/alternatives/my.cnf
joka puolestaan lataa kokoonpanon käyttämällä !includedir
, reittidokumenteista /etc/mysql/mariadb.conf.d
, luultavasti asiakirjasta 50-server.cnf
Resurssi, jota tietokantapalvelin käyttää ollakseen käsittelemättä etäpyyntöjä, koostuu vain tietystä sijainnista tehtyjen pyyntöjen "kuuntelusta". IP-osoite joka ilmaistaan parametrin arvona bind-address
(joka korvaa klassikon skip-networking
) Kun osoite on 127.0.0.1
(localhost
) vain paikallisen koneen pyyntöihin vastataan. Jos kommentoi #
tai jos arvo on 0.0.0.0
, palvelemme mihin tahansa osoitteeseen. Ulkoisen pääsyn sallimiseksi turvallisinta on ilmoittaa IP-osoite (joka voi olla julkinen tai yksityinen) tietokoneesta, josta sitä käytetään, yleensä jotain sellaista bind-address = 192.168.1.74
. Sinun tapauksessasi tämä laite voi toimia a tunneli (uudelleenohjaus kanssa SSH) tai kävelytienä (jossa ydin ip -taulukoita) välttääksesi palvelimen paljastamisen verkon valvotun alueen ulkopuolelle.
Yllä olevasta kuvakaappauksesta näet, että sitä on muokattu my.cnf
kokoonpanon kanssa MySQL tilausta käyttämällä sudo nano /etc/mysql/my.cnf
. Kun kyseessä on kanssa MariaDB Tavallisella kokoonpanolla järjestys olisi jotain tällaista sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
. Kuten edellä mainittiin, kun sinulla on pääsy järjestelmänvalvojan oikeuksin, a GUI kuten MySQL-työpöytä säännölliseen tietokannan hallintaan.
Luo tietokannat
Kun tietokantapalvelin on määritetty, voidaan luoda tietokannat ja taulukot, joihin IoT-tiedot tallennetaan. Voit tehdä tämän käyttämällä komentoja SQL konsolista tai GUI johtajasta.
Järjestys CREATE DATABASE
luo "lämpötilatietokannan". Virheiden välttämiseksi voidaan käyttää lomaketta temperaturas
;CREATE DATABASE IF NOT EXISTS
joka loisi tietokannan "temperature_database" vain, jos sitä ei tällä hetkellä ole olemassa.base_datos_temperaturas
;
Luo taulukot
Koska eri tietokannoista voi olla samanniisiä taulukoita, voit viitata yhteen niistä kirjoittamalla sen nimen eteen tietokannan nimi ja erottamalla molemmat pisteellä, esim. base_datos.tabla
Tämä merkintä voidaan laajentaa myös kenttien nimiin base.tabla.campo
Jos tietokannan nimi jätetään pois taulukkoa käytettäessä (tässä tapauksessa sitä luotaessa), katsotaan, että viimeksi valittuun viitataan. Jos haluat nimenomaisesti valita tietyn, voit käyttää komentoa USE
ja ilmoita nimesi USE
base_datos_temperaturas
;
Tietokantoihin luotaessa taulukoita samassa toiminnossa yleensä lisätään niitä muodostavien kenttien tiedot (tosin niitä on myös mahdollista muuttaa myöhemmin) Kuten tietokannan kanssa tehdään, taulukko voidaan luoda vain, jos se tekee ei ole olemassa lausekkeen lisäämistä varten IF NOT EXISTS
tai päinvastoin, muista poistaa taulukko ennen sen luomista vain, jos se on olemassa käyttämällä DROP TABLE IF EXISTS
valor_temperaturas
;
Jotta taulukoiden tai tietokantojen nimet voivat olla ristiriidassa komentojen tai toimintosarjan kanssa, voidaan käyttää syvää aksenttimerkkiä, jota joskus kutsutaan käänteiseksi pilkuksi, ympäröimään nimi ja välttämään ristiriidat tai virheet komentoissa. SQL.
Määritä kentät
Taulukkoa luotaessa lisätyt kentät ilmoitetaan sulkemalla ne ja osoittamalla niiden tallennettavan tiedon tyypin. Tietotyypit, joita tyypillisesti käytetään tietokannassa esineiden Internetiin liitetyistä laitteista olevien tietojen tallentamiseen, ovat kokonaislukuja (INT
o BIGINT
) desimaalit (DECIMAL
, DOUBLE
o FLOAT
) ajasta (DATE
, TIME
, DATETIME
o TIMESTAMP
) ja tekstiä (lähinnä VARCHAR
vaikka sellaisia on muitakin TEXT
mutta niitä ei käytetä IoT:ssä) Tietotyypin jälkeen ja suluissa lisätään datan pituus ja tarvittaessa muoto tai tarkkuus.
Lisäämällä AUTO_INCREMENT
Kentän määrittely osoittaa tietokannan hallintaohjelmalle, että jos muuta ei ole ilmoitettu, uutta tietuetta luotaessa tulee automaattisesti tallentaa viimeisen tietueen arvo plus sitä vastaava lisäys (joka on normaalisti 1). kentät, joita käytetään tietueiden numeerisina indekseinä.
Koodi NOT NULL
ilmaisee, että tietueen kenttä ei voi olla tyhjä, sen on tallennettava jokin arvo.
Kun käytät DEFAULT
Kun luot taulukon kenttää, se ilmoitetaan MySQL kentän oletusarvo edellyttäen, että uutta tietuetta lisättäessä tai sitä muuttaessa ei nimenomaisesti ilmoiteta toista arvoa. Usein käytetty oletusarvo, tässä tapauksessa IoT-arvojen seuraamiseen, on CURRENT_TIMESTAMP
jonka avulla voit automaattisesti tallentaa nykyisen ajan kenttään uutta tietuetta luotaessa, jolloin tiedot tunnistetaan automaattisesti ajoissa.
Tietokannan suorituskyvyn optimoimiseksi on kätevää sisällyttää taulukon kenttien määritelmän loppuun yksi, jota käytetään indeksinä lausekkeen kanssa. PRIMARY KEY (
ID on hakemistoksi valittu kenttä.ID
)
Taulukon määritelmän lopussa voit ilmoittaa parametriarvoksi tietokantakoneen, jolla sitä hallitaan ENGINE
muodossa ENGINE=InnoDB;
ollessa InnoDB
tässä tapauksessa valittu moottori.
Luo tietokantoja, taulukoita ja määritä kenttiä SQL-istunnossa
Seuraavan esimerkin koodi kokoaa yhteen tilaukset, vaiheet, jotka olisi suoritettava vähimmäistaulukon sisältävän tietokannan luomiseksi.
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;
|
Luo tietokannoista varmuuskopioita
Kun palvelin on konfiguroitu ja tietokanta ja sen taulukot luotu, kaikki olisi valmis tallentamaan IoT-solmujen saamat tiedot. Vaikka tämän artikkelisarjan painopiste ei sisällä ylläpitoa, on yksi tärkeä hallinnollinen ongelma, johon on tärkeää puuttua: varmuuskopiointi. Useimmilta esimiehiltä, mukaan lukien phpMyAdmin y MySQL-työpöytä, varmuuskopioita voidaan tehdä ja palauttaa, mutta on yleistä sisällyttää ne skriptiin, joka automatisoi ne (luultavasti asetusten ja monien muiden asiakirjojen kanssa), joten työkalun käyttö on helpompaa. MySQLDump, asiakas, joka on yleensä osa tavanomaista asennusta MySQL, tai joku muu vaihtoehto MySQL Data Dumper Mitä tilaus sisältää? mydumper
kopioidaksesi ja myloader
sen palauttamiseksi
MySQLDump
Tilauksen muoto mysqldump
Se on hyvin yksinkertaista, sinun tarvitsee vain ilmoittaa käyttäjätunnus user
, Salasana password
ja tietokanta, jonka haluat kopioida tai --all-databases
varmuuskopioida kaikki tietokannat seuraavan esimerkin mukaisesti:
mysqldump --opt --user=pelaez --password=1234 --all-databases > copia.sql
Edellinen esimerkki luo asiakirjan copia.sql
joka sisältää tilaukset SQL (eli tekstiä) tarvitaan kaikkien tietokantojen uudelleen rakentamiseen. Tekstimuotoon tallennettuna kopio vie paljon enemmän kuin on tarpeen, minkä vuoksi se yleensä myös pakataan tilan säästämiseksi laitteessa, johon se on tallennettu.
Esimerkkikomennolla luotu varmuuskopio voidaan palauttaa, jos tiedot katosivat alla olevan toiminnot suorittavan komennon virheen vuoksi SQL asiakirjan copia.sql
mysql --user=pelaez --password=1234 < copia.sql
MySQL Data Dumper
Vaikka aikaisemmat toiminnot riittäisivät, on se hyvin yleinen käyttö MySQL Data Dumper, lähes standardi sen suorituskyvystä, vaikka se ei ole osa mukana toimitettuja perustyökaluja MySQL
Seuraavat ovat vaihtoehdot mydumper
useimmiten käytetyt, jotka loogisesti pitäisi kirjoittaa osana samaa komentoa välilyönnillä erotettuina, vaikka tässä tekstissä ne on erotettu riveiksi lukemisen helpottamiseksi:
--host polaridad.es
"polaridad.es" on tietokantapalvelimen nimi
--port 3306
"3306" on portin numero, jota palvelin kuuntelee (oletusarvoisesti se on 3306)
--user pelaez
"pelaez" on sen käyttäjän nimi, jonka kanssa tietokantaa käytetään
--password 1234
"1234" on sen käyttäjän salasana, jolla tietokantaan käytetään
--database temperaturas
"lämpötilat" on varmuuskopioitavan tietokannan nimi
--no-locks
älä lukitse tietokantaa kopioinnin aikana (oletusarvoisesti se lukittuu)
--build-empty-files
kopioi myös tyhjät taulukot
--compress-input
pakkaa sisääntuloa
--compress
pakkaa tulos (tuloksena oleva varmuuskopio)
Palauta komennolla saatu varmuuskopio mydumper
sitä käytetään myloader
jota käytetään ensisijaisesti seuraavien vaihtoehtojen kanssa, jotka on sisällytettävä samaan järjestykseen välilyönneillä erotettuina:
--host polaridad.es
"polaridad.es" on tietokantapalvelimen nimi
--port 3306
"3306" on portin numero, jota palvelin kuuntelee (oletusarvoisesti se on 3306)
--user pelaez
"pelaez" on sen käyttäjän nimi, jonka kanssa tietokantaa käytetään
--password 1234
"1234" on sen käyttäjän salasana, jolla tietokantaan käytetään
--directory=copia_iot
«iot_copy» on kansio, jossa sovelluksella luotu kopio sijaitsee mydumper
--overwrite-tables
Korvaa taulukot, vaikka ne olisi jo olemassa
--verbose 3
"3" on prosessin informaatioaste (korkeampi, enemmän viestejä)
-C
käytä pakkausta tietovirrassa
Tämän sarjan seuraava (ja viimeinen) artikkeli selittää kuinka käyttää PHP-ohjelmointikieltä tallentamaan esineiden Internetiin kytkettyjen laitteiden saamia tietoja tietokantoihin joista tässä tekstissä on puhuttu.
Post Comment