Ihanda ang MySQL o MariaDB database
- I-configure ang database server
- I-configure ang ugat, ang pangunahing administrator ng MySQL
- I-configure ang malayuang pag-access sa database
- Lumikha ng mga database
- Lumikha ng mga talahanayan
- Tukuyin ang mga patlang
- Lumikha ng mga database, talahanayan at i-configure ang mga field sa isang SQL session
- Gumawa ng mga backup na kopya ng mga database
I-configure ang database server
Kapag na-install na ang hanay ng mga serbisyo Lampara, WAMP, MAMP o XAMPP Tulad ng ipinaliwanag sa unang artikulo ng serye o pagkatapos lamang i-install sa makina na gaganap bilang isang server ang kabuuan ng mga application na nagpapatupad ng kaukulang mga serbisyo, kinakailangan upang ayusin ang ilang aspeto ng configuration ng database server MySQL pati na rin ang paglikha ng mga database at talahanayan na gagamitin sa web server upang mag-imbak ng data mula sa mga aparatong Internet of Things.
Kung gumamit ng pampublikong server, tiyak na magbibigay ang provider ng ilang uri ng panel upang mamagitan sa pagitan ng user at ng "tunay" na configuration ng database upang mapalakas ang seguridad sa operasyon. Kung gayon, kailangan mong sumangguni sa mga tagubilin na inaalok ng provider na ito. Sa kaso ng isang tunay o virtual na server na naka-host sa mga pasilidad ng isang third party, maaaring lumitaw ang isang maihahambing na pangyayari kapag pinamahalaan ito ng provider; Kung ang isang hindi pinamamahalaang server ay kinontrata (ng provider, pinamamahalaan ng user), ang sumusunod na impormasyon ay ilalapat.
Dahil ang mahalagang bagay ay malaman ang mga tagubilin na dapat ibigay sa tagapamahala ng database at nauunawaan na ginagamit ito bilang paraan upang suportahan ang mga device para sa Internet of Things, na magiging object ng proyekto, maaaring ito ay sapat na upang magamit ang console dahil ang trabaho sa database server mismo ay paminsan-minsan. Kung nagsimulang tumaas ang workload ng pamamahala, maaaring sulit ito, dahil mas maginhawa, gumamit ng manager sa server mismo, tulad ng sikat na phpMyAdmin (mula sa isang web browser) o lokal, bagaman siyempre ina-access ang database server, kasama ang isang administrator tulad ng mysql workbench mula sa kung saan upang gumanap sa isang advanced GUI ang mga pagpapatakbo na ipapaliwanag at marami pang iba na nasa labas ng artikulong ito at nararapat sa isang buong serye.
Bilang karagdagan sa higit pa o mas kaunting mga awtomatikong pagpapatakbo na maaaring gawin sa mysql workbench sa server, mga database o mga talahanayan posible ring magsagawa ng mga gawain nang "manu-mano" sa pamamagitan ng pagsulat at pagpapatupad ng mga kumpletong script o mga independiyenteng utos sa SQL. Katulad ng sa tool mysql workbench, SQL ay nangangailangan ng isang hiwalay na kabanata at kung saan ay mahalaga upang malaman nang malalim kapag ang bahagi ng IoT web work na isinasagawa ay nagsasangkot ng mas seryosong atensyon sa backend kaysa sa ipinaliwanag dito.
Sa anumang kaso, at siyempre upang malutas ang kinakailangang pagsasaayos ng database ng IoT na pinoproseso, maaaring gamitin ang console.
I-configure ang ugat, ang pangunahing administrator ng MySQL
Kung ang database server ay nasa sarili nitong makina, ang unang bagay na dapat gawin ay i-configure ang mga pahintulot ng tagapangasiwa ng serbisyo upang makagawa, gamit ang mga pribilehiyong iyon, iba pang mga user (na maaaring mayroon nito) at, kung naaangkop, ang mga database at talahanayan kung saan iimbak ang impormasyong kailangan ng sistema ng Internet of Things.
Mahalagang dumalo sa proseso ng pag-install ng hanay ng mga serbisyo o ng server MySQL, depende sa prosesong sinundan, dahil, sa maraming kaso, ang installer mismo ang mamamahala sa pagsasagawa ng hakbang na ito at sa iba pa at hindi na kailangang ulitin ang mga ito maliban kung gusto mong baguhin ang configuration.
Upang maisagawa ang mga gawaing ito, karaniwan kang nagtatrabaho sa console. MySQL bilang tagapangasiwa. Upang ma-access ang mode na ito, gamitin ang command mysql -u root -p
o sudo mysql -u root
kung ginamit sa unang pagkakataon at sa panahon ng pag-install ang user ay hindi pa na-configure root
Sa Order mysql -u root -p
ipinahiwatig kasama ng opsyon -u
ang username (root
) at may opsyon -p
(password) na dapat hilingin ang susi kapag ina-access ang console MySQL. Upang bumalik sa system console maaari mong gamitin ang command quit
lumabas
Gaya ng nakikita sa screenshot sa itaas, bago umalis sa console MySQL, upang itakda ang mga pribilehiyo ng user root
ang utos ay ginamit:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '1234' WITH GRANT OPTION;
kung saan:
- lahat ng mga pribilehiyo ay ipinagkaloob
GRANT ALL PRIVILEGES
- sa lahat ng mga talahanayan sa lahat ng mga database
ON *.*
- sa gumagamit
root
pag-access mula sa makina na nagpapatakbo ng server MySQLTO 'root'@'localhost'
- gamit ang 1234 bilang password
IDENTIFIED BY '1234'
- na may pahintulot na pahintulutan ang ibang mga gumagamit
WITH GRANT OPTION
Upang pamahalaan ang database nang malayuan, ang mga pribilehiyo ay dapat ibigay sa kaukulang user mula sa ibang mga lokasyon. Sa nakaraang halimbawa, pinayagan ito root
na-access mula sa makina kung saan tumatakbo ang database server (localhost
) kasama 'root'@'localhost'
, kung ginamit 'root'@'%'
Papayagan ang pag-access mula sa anumang makina.
Kung mayroon kang mga pribilehiyo ng administrator sa system, maaari mong muling itatag ang password ng user root
de MySQL. Upang gawin ito, kinakailangan na ihinto ang serbisyo (mysql
o mysqld
, depende sa pamamahagi), i-boot ito nang walang susi, itakda ang bagong susi root
at i-restart ito. Sa pamamagitan ng pag-access nang walang password, posible ring ibigay ang mga pribilehiyong inilarawan sa itaas.
- itigil ang serbisyo
sudo /etc/init.d/mysql stop
- ilunsad MySQL walang susi at i-unlock ang console
sudo mysqld_safe --skip-grant-tables &
- access bilang «
root
»mysql -u root
- baguhin ang password:
- i-access ang database «
mysql
»:USE mysql;
- italaga kay «
root
» ang susi «1234»:UPDATE user SET authentication_string=PASSWORD("1234") WHERE user="root";
- ilapat ang mga bagong pribilehiyo:
FLUSH PRIVILEGES;
- lumabas sa console
mysql
at bumalik sa system:quit
- i-access ang database «
-
muling simulan ang serbisyo
sudo /etc/init.d/mysql restart
I-configure ang malayuang pag-access sa database
Para sa mga kadahilanang pangseguridad, ang paunang pagsasaayos ng database manager MySQL ay hindi pinapayagan ang malayuang pag-access, upang baguhin ito ay kinakailangan upang i-edit ang dokumento ng pagsasaayos, normal my.cnf
, na kadalasang matatagpuan sa ruta /etc/mysql
.
Kung ginamit na MariaDB, na ngayon ay ang "mas malayang" bersyon, ng MySQL, tiyak my.cnf
ay magiging isang link sa /etc/alternatives/my.cnf
na, naman, maglo-load ng configuration, gamit !includedir
, mula sa mga dokumento ng ruta /etc/mysql/mariadb.conf.d
, malamang mula sa dokumento 50-server.cnf
Ang mapagkukunan na ginagamit ng database server upang hindi makadalo sa mga malayuang kahilingan ay binubuo ng "pakikinig" lamang sa mga kahilingang ginawa mula sa isang partikular na lokasyon. IP adress na kung saan ay ipinahayag bilang ang halaga ng parameter bind-address
(na pumapalit sa classic skip-networking
) Kapag ang address ay 127.0.0.1
(localhost
) tanging mga kahilingan mula sa lokal na makina ang tinutugunan. Kung nagkomento ng #
o kung ang halaga ay 0.0.0.0
, naghahatid kami ng anumang address. Upang payagan ang panlabas na pag-access, ang pinakaligtas na bagay ay ipahiwatig ang IP adress (na maaaring pampubliko o pribado) ng computer kung saan ito na-access, kadalasan ay katulad ng bind-address = 192.168.1.74
. Sa iyong kaso, ang kagamitang ito ay maaaring kumilos bilang isang lagusan (nagre-redirect gamit ang SSH) o bilang isang daanan (na may mga talahanayan ng core ip) upang maiwasang ilantad ang server sa labas ng isang kontroladong lugar ng network.
Sa screenshot sa itaas makikita mo na ito ay na-edit my.cnf
kasama ang pagsasaayos MySQL gamit ang order sudo nano /etc/mysql/my.cnf
. Sa kaso ng pakikipagtulungan sa MariaDB Sa karaniwang pagsasaayos, ang pagkakasunud-sunod ay magiging katulad sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
. Gaya ng nabanggit sa itaas, kapag may access na may mga pribilehiyong pang-administratibo, a GUI bilang mysql workbench para sa regular na pamamahala ng database.
Lumikha ng mga database
Kapag na-configure na ang database server, maaaring malikha ang mga database at talahanayan kung saan iimbak ang data ng IoT. Upang gawin ito, maaari mong gamitin ang mga utos SQL mula sa console o mula sa GUI ng isang manager.
Ang pagkakasunud-sunod CREATE DATABASE
lumilikha ng database ng "mga temperatura." Upang maiwasan ang mga error, maaaring gamitin ang form temperaturas
;CREATE DATABASE IF NOT EXISTS
na lilikha ng database na "temperature_database" lamang kung hindi ito kasalukuyang umiiral.base_datos_temperaturas
;
Lumikha ng mga talahanayan
Tulad ng sa iba't ibang mga database ay maaaring mayroong mga talahanayan na may parehong pangalan, maaari kang sumangguni sa isa sa mga ito sa pamamagitan ng unahan ng pangalan nito kasama ng database at paghihiwalay pareho ng isang tuldok, tulad ng base_datos.tabla
Ang notasyong ito ay maaari ding i-extend sa mga pangalan ng mga field base.tabla.campo
Kung ang pangalan ng database ay tinanggal kapag tumatakbo sa isang talahanayan (sa kasong ito, kapag nilikha ito) ito ay itinuturing na ang huling napili ay isinangguni. Upang hayagang pumili ng isang partikular, maaari mong gamitin ang command USE
at ipahiwatig ang iyong pangalan USE
base_datos_temperaturas
;
Kapag lumilikha ng mga talahanayan sa mga database, sa parehong operasyon, ang impormasyon ng mga patlang na bumubuo sa kanila ay karaniwang idinaragdag (bagama't posible ring baguhin ang mga ito sa ibang pagkakataon). Gaya ng ginagawa sa database, ang talahanayan ay mabubuo lamang kung ito ay gagawin. hindi umiiral ang pagdaragdag ng sugnay IF NOT EXISTS
o sa kabaligtaran, siguraduhing tanggalin ang talahanayan bago ito likhain lamang kung mayroon itong ginagamit DROP TABLE IF EXISTS
valor_temperaturas
;
Upang payagan ang mga pangalan ng mga talahanayan o database na maaaring sumalungat sa mga utos o pamamaraan, ang grave accent mark, kung minsan ay tinatawag na inverted comma, ay maaaring gamitin upang palibutan ang pangalan at maiwasan ang mga salungatan o mga error sa mga command. SQL.
Tukuyin ang mga patlang
Ang mga field na idinagdag kapag lumilikha ng talahanayan ay ipinahiwatig sa pamamagitan ng paglalagay ng mga ito sa mga panaklong at pagpapakita ng uri ng data na iniimbak nila. Ang mga uri ng data na karaniwang ginagamit sa isang database upang mag-imbak ng impormasyon mula sa mga device na konektado sa Internet of Things ay mga integer (INT
o BIGINT
) mga desimal (DECIMAL
, DOUBLE
o FLOAT
) ng oras (DATE
, TIME
, DATETIME
o TIMESTAMP
) at teksto (pangunahin VARCHAR
bagama't may iba pang katulad TEXT
ngunit hindi ginagamit ang mga ito para sa IoT) Pagkatapos ng uri ng data, at sa mga panaklong, ang haba ng data at, kung naaangkop, idinaragdag ang format o katumpakan.
Sa pagdaragdag AUTO_INCREMENT
Ang kahulugan ng isang patlang ay nagpapahiwatig sa tagapamahala ng database na, kung wala nang iba pang ipinahiwatig, kapag lumilikha ng isang bagong talaan ang halaga ng huling isa kasama ang katumbas na pagtaas ay dapat na awtomatikong maiimbak (na karaniwan ay 1). Karaniwan itong kasama sa mga field na ginagamit bilang mga numerical index ng mga talaan.
Ang code NOT NULL
ay nagpapahiwatig na ang isang patlang sa isang talaan ay hindi maaaring walang laman, dapat itong mag-imbak ng ilang halaga.
Kapag gumagamit DEFAULT
Kapag lumilikha ng isang patlang ng isang talahanayan, ito ay ipinahiwatig MySQL isang default na halaga para sa field sa kondisyon na kapag nagdaragdag ng isang bagong tala o binago ito, isa pang halaga ay hindi hayagang ipinahiwatig. Ang isang madalas na ginagamit na default na halaga, sa kasong ito upang masubaybayan ang mga halaga ng IoT, ay CURRENT_TIMESTAMP
na nagbibigay-daan sa iyong awtomatikong i-record ang kasalukuyang oras sa isang field kapag gumagawa ng bagong record, kaya awtomatikong natukoy ang data sa oras.
Upang ma-optimize ang pagganap ng database, maginhawang isama sa dulo ng kahulugan ng mga patlang ng talahanayan ang isa na ginagamit bilang isang index na may sugnay. PRIMARY KEY (
ID ang napiling field bilang index.ID
)
Sa dulo ng kahulugan ng isang talahanayan maaari mong ipahiwatig ang database engine kung saan ito ay pinamamahalaan bilang ang halaga ng parameter ENGINE
kasama ang format ENGINE=InnoDB;
pagkatao InnoDB
pinili ang makina sa kasong ito.
Lumikha ng mga database, talahanayan at i-configure ang mga field sa isang SQL session
Pinagsasama-sama ng code sa sumusunod na halimbawa ang mga order, ang mga hakbang na dapat gawin, upang lumikha ng database na may pinakamababang talahanayan.
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;
|
Gumawa ng mga backup na kopya ng mga database
Kapag na-configure na ang server at nagawa na ang database at ang mga talahanayan nito, magiging handa na ang lahat para iimbak ang impormasyong nakuha ng mga IoT node. Bagama't ang pokus ng seryeng ito ng mga artikulo ay hindi kasama ang pagpapanatili, mayroong isang kritikal na isyu sa pangangasiwa na mahalagang tugunan: mga backup. Mula sa karamihan ng mga tagapamahala, kabilang ang phpMyAdmin y mysql workbench, ang mga backup na kopya ay maaaring gawin at ibalik ngunit karaniwan na isama ang mga ito sa isang script na nag-automate sa kanila (marahil kasama ang pagsasaayos at marami pang ibang mga dokumento) kaya mas madaling gamitin ang tool. MySQLDump, isang kliyente na karaniwang bahagi ng isang kumbensyonal na pag-install ng MySQL, o ilang alternatibo tulad ng MySQL Data Dumper Ano ang kasama sa order? mydumper
upang gawin ang kopya at myloader
para maibalik ito
MySQLDump
Ang format ng order mysqldump
Ito ay napaka-simple, kailangan mo lamang ipahiwatig ang username user
, Password password
at ang database na gusto mong kopyahin o --all-databases
upang i-backup ang lahat ng mga database tulad ng sa sumusunod na halimbawa:
mysqldump --opt --user=pelaez --password=1234 --all-databases > copia.sql
Ang nakaraang halimbawa ay bumubuo ng dokumento copia.sql
na naglalaman ng mga order SQL (i.e. text) na kailangan para muling buuin ang lahat ng database. Kapag nai-save sa format ng teksto, ang kopya ay tumatagal ng higit pa kaysa sa kinakailangan, kung kaya't ito ay karaniwang naka-compress upang makatipid ng espasyo sa device kung saan ito naka-imbak.
Ang backup na nabuo gamit ang halimbawang command ay maaaring maibalik kung ang impormasyon ay nawala dahil sa isang error sa command sa ibaba na nagsasagawa ng mga operasyon SQL ng dokumento copia.sql
mysql --user=pelaez --password=1234 < copia.sql
MySQL Data Dumper
Kahit na ang mga nakaraang operasyon ay magiging sapat, ito ay napaka-pangkaraniwan na gamitin MySQL Data Dumper, na halos isang pamantayan para sa pagganap nito bagaman hindi ito bahagi ng mga base tool na kasama sa MySQL
Ang mga sumusunod ay ang mga opsyon ng mydumper
karamihan ay ginagamit na, lohikal, ay dapat na nakasulat bilang bahagi ng parehong utos, na pinaghihiwalay ng mga puwang, bagaman sa tekstong ito sila ay pinaghiwalay sa mga linya upang mapadali ang pagbabasa:
--host polaridad.es
Ang “polaridad.es” ay ang pangalan ng database server
--port 3306
Ang "3306" ay ang port number kung saan nakikinig ang server (bilang default, ito ay 3306)
--user pelaez
Ang "pelaez" ay ang pangalan ng gumagamit kung kanino na-access ang database
--password 1234
Ang "1234" ay ang password ng user kung kanino na-access ang database
--database temperaturas
Ang "temperatura" ay ang pangalan ng database na bina-back up
--no-locks
huwag i-lock ang database sa panahon ng kopya (sa pamamagitan ng default ito ay nagla-lock)
--build-empty-files
kopyahin din ang mga bakanteng mesa
--compress-input
compress input
--compress
i-compress ang output (ang resultang backup)
Upang ibalik ang backup na nakuha gamit ang mydumper
ginamit na myloader
na pangunahing ginagamit sa mga sumusunod na opsyon, na dapat isama sa parehong pagkakasunud-sunod na pinaghihiwalay ng mga puwang:
--host polaridad.es
Ang “polaridad.es” ay ang pangalan ng database server
--port 3306
Ang "3306" ay ang port number kung saan nakikinig ang server (bilang default, ito ay 3306)
--user pelaez
Ang "pelaez" ay ang pangalan ng gumagamit kung kanino na-access ang database
--password 1234
Ang "1234" ay ang password ng user kung kanino na-access ang database
--directory=copia_iot
Ang «iot_copy» ay ang folder kung saan matatagpuan ang kopyang nabuo mydumper
--overwrite-tables
i-overwrite ang mga talahanayan kahit na mayroon na sila
--verbose 3
Ang "3" ay ang antas ng impormasyon ng proseso (mas mataas, mas maraming mensahe)
-C
gumamit ng compression sa stream ng data
Ang susunod (at huling) artikulo sa seryeng ito ay nagpapaliwanag kung paano gamitin ang PHP programming language upang iimbak ang impormasyong nakuha ng mga device na konektado sa Internet of Things sa mga database na pinag-usapan sa tekstong ito.
Post Komento