Iluzija ljubavi- Ana Bučević
Sadržaj:
- Konfiguriranje MySQL poslužitelja
- Omogućavanje pristupa korisniku s udaljenog stroja
- Konfiguriranje vatrozida
- iptables
- izgubljene vode
- FirewallD
- Provjera promjena
- Zaključak
MySQL poslužitelj prema zadanim postavkama sluša veze samo iz localhosta, što znači da mogu pristupiti samo aplikacije koje pokreću isti domaćin.
Međutim, u nekim je situacijama potrebno pristupiti MySQL poslužitelju s udaljene lokacije. Na primjer, kada se želite povezati s udaljenim MySQL poslužiteljem iz vašeg lokalnog sustava ili kada koristite implementaciju s više poslužitelja gdje se aplikacija izvodi na drugom stroju od poslužitelja baze podataka. Jedna opcija bi bila pristup MySQL poslužitelju putem SSH tunela, a druga je konfiguriranje MySQL poslužitelja za prihvaćanje udaljenih veza.
U ovom ćemo vodiču proći korake potrebne za daljinsko povezivanje s MySQL poslužiteljem. Iste upute vrijede i za MariaDB.
Konfiguriranje MySQL poslužitelja
Prvi korak je postavljanje MySQL poslužitelja za slušanje određene IP adrese ili svih IP adresa na uređaju.
Ako MySQL poslužitelj i klijenti mogu međusobno komunicirati preko privatne mreže, tada je najbolja opcija da se MySQL poslužitelj posluži samo na privatnom IP-u. U suprotnom, ako se želite povezati s poslužiteljem preko javne mreže, postavite MySQL poslužitelj da sluša na svim IP adresama na uređaju.
Da biste to učinili, morate urediti MySQL konfiguracijsku datoteku i dodati ili promijeniti vrijednost opcije
bind-address
. Možete postaviti jednu IP adresu i IP raspone. Ako je adresa
0.0.0.0
, MySQL poslužitelj prihvaća veze na svim host IPv4 sučeljima. Ako imate konfiguriran IPv6 na vašem sustavu, umjesto
0.0.0.0
koristite
::
.
Lokacija MySQL konfiguracijske datoteke razlikuje se ovisno o distribuciji. U Ubuntu i Debian datoteka se nalazi na
/etc/mysql/mysql.conf.d/mysqld.cnf
, dok se u Red Hat baziranim distribucijama, kao što je CentOS, datoteka nalazi na
/etc/my.cnf
.
Otvorite datoteku s uređivačem teksta:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Potražite liniju koja počinje s
bind-address
i postavite njezinu vrijednost na IP adresu na kojoj bi MySQL poslužitelj trebao slušati.
Prema zadanim postavkama vrijednost je postavljena na
127.0.0.1
(sluša se samo u localhostu).
U ovom ćemo primjeru postaviti MySQL poslužitelj da sluša na svim IPv4 sučeljima mijenjanjem vrijednosti u
0.0.0.0
bind-address = 0.0.0.0 # skip-networking
Ako postoji linija koja sadrži
skip-networking
, izbrišite je ili komentirajte dodavanjem
#
na početku retka.
U MySQL 8.0 i novijim
bind-address
direktiva
bind-address
možda nije prisutna. U tom slučaju dodajte je ispod
odjeljak.
Nakon završetka, ponovno pokrenite MySQL uslugu da bi promjene stupile na snagu. Samo root ili korisnici s sudo povlasticama mogu ponovno pokrenuti usluge.
Da biste ponovo pokrenuli MySQL uslugu na Debianu ili Ubuntuu, upišite:
sudo systemctl restart mysql
Na distribucijama temeljenim na RedHatu kao što je CentOS za ponovno pokretanje servisa:
Omogućavanje pristupa korisniku s udaljenog stroja
Sljedeći je korak omogućiti pristup bazi udaljenog korisnika.
Prijavite se na MySQL poslužitelj kao korijenski korisnik upisivanjem:
sudo mysql
mysql -uroot -p
Iznutra MySQL ljuske, koristite
GRANT
izraz za odobrenje pristupa udaljenom korisniku.
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
Gdje:
-
database_name
je naziv baze podataka s kojom će se korisnik povezati.user_name
je ime MySQL korisnika.ip_address
je IP adresa s koje će se korisnik povezati. Upotrijebite%
da biste se omogućili povezivanju s bilo koje IP adrese.user_password
je korisnička lozinka.
Na primjer, da biste dodijelili pristup
dbname
baze podataka korisniku s imenom
foo
sa lozinkom
my_passwd
s klijentskog računala s IP
10.8.0.5
,
10.8.0.5
biste:
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
Konfiguriranje vatrozida
Posljednji korak je konfiguriranje vatrozida tako da dopušta promet na priključku
3306
(MySQL zadani ulaz) s udaljenih računala.
iptables
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
Omogući pristup s određene IP adrese:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
izgubljene vode
UFW je zadani alat vatrozida u Ubuntuu. Da biste omogućili pristup s bilo koje IP adrese na Internetu (vrlo nesigurno):
sudo ufw allow 3306/tcp
Omogući pristup s određene IP adrese:
sudo ufw allow from 10.8.0.5 to any port 3306
FirewallD
FirewallD je zadani alat za upravljanje zaštitnim zidom u CentOS-u. Da biste omogućili pristup s bilo koje IP adrese na Internetu (vrlo nesigurno), unesite:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
Da biste omogućili pristup s određene IP adrese na određenom portu, možete stvoriti novu FirewallD zonu ili upotrijebiti bogato pravilo. Pa stvorite novu zonu pod nazivom
mysqlzone
:
sudo firewall-cmd --new-zone=mysqlzone --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32
sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp
sudo firewall-cmd --reload
Provjera promjena
Da biste potvrdili da se udaljeni korisnik može povezati s MySQL poslužiteljem, pokrenite sljedeću naredbu:
mysql -u user_name -h mysql_server_ip -p
Tamo gdje je
user_name
ime korisnika kojem ste odobrili pristup, a
mysql_server_ip
je IP adresa glavnog računala na kojem se pokreće MySQL poslužitelj.
Ako je sve ispravno postavljeno, moći ćete se prijaviti na udaljeni MySQL poslužitelj.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
Donja pogreška označava da korisnik na koji se pokušavate prijaviti nema dopuštenja za pristup udaljenom MySQL poslužitelju.
"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"
Zaključak
MySQL, najpopularniji poslužitelj otvorenih koda po defaultu, sluša dolazne veze samo na localhostu.
Da biste omogućili udaljene veze s MySQL poslužiteljem, morate izvršiti sljedeće korake:
- Konfigurirajte MySQL poslužitelj da sluša na svim ili određenom sučelju. Osigurajte pristup udaljenom korisniku. Otvorite MySQL port na vatrozidu.
Kontinuirano pokreće otvoreni baze baze podataka za skaliranje baze podataka

Izvor i vlasnički ...
Wolfram Alpha: test test Alpha je online za testiranje tijekom cijelog vikenda, u očekivanju online baze znanja koja službeno odlazi u ponedjeljak. Iako je lansirni tim upozorio na Wolfram Alpha Blogu da se stranica može povremeno povlačiti tijekom vikenda, svatko ima priliku provjeriti koliko dobro odgovara na činjenična pitanja iz svoje baze podataka koje organizira osoblje Wolfram Alpha.

Koliko dobro radi? Pa, uspjelo je brzo pronaći koliko se kalorija nalazi u posluživanju kakaovih napitaka, koji je dan u tjednu na kojem sam rođen, i cirkulaciju PC Worlda. Ulazak u "Star Trek" automatski je povukao J.J. Abrams film i rekla mi je da je objavljena prije 0.022 godine.
Oracleove najnovije obveze usmjerene na rješavanje problema Europske komisije glede njegova stjecanja Sun Microsystems i MySQL baze podataka su tanke, a čak i ako su bile potvrdili da ne bi zaštitili budućnost MySQL-a, izjavio je Florian Mueller, iznimno kritičar sporazuma, u ponedjeljak.

Njegovi komentari slijedili su priopćenje koje je Komisija objavila ranije ujutro kako je Oracle pristao poduzeti niz pothvata korisnicima, programerima i korisnici MySQL-a, koje je Komisija opisala kao "važan novi element koji treba uzeti u obzir" u svojoj antitrustovoj istrazi spajanja sa Suncom.