Sådan Tillades Meddelelser for iOS - PARKPARK GUIDE
Indholdsfortegnelse:
- Konfiguration af MySQL Server
- At give adgang til en bruger fra en ekstern maskine
- Konfiguration af firewall
- iptables
- UFW
- FirewallD
- Bekræftelse af ændringerne
- Konklusion
Som standard lytter MySQL-serveren kun til forbindelser fra localhost, hvilket betyder, at den kun kan fås adgang til af applikationer, der kører på den samme vært.
I nogle situationer er det imidlertid nødvendigt at få adgang til MySQL-serveren fra fjernplacering. For eksempel, når du vil oprette forbindelse til den eksterne MySQL-server fra dit lokale system, eller når du bruger en multi-serverinstallation, hvor applikationen kører på en anden maskine end databaseserveren. En mulighed ville være at få adgang til MySQL-serveren gennem SSH-tunnelen, og en anden er at konfigurere MySQL-serveren til at acceptere fjernforbindelser.
I denne vejledning gennemgår vi de nødvendige trin for at tillade fjernforbindelser til en MySQL-server. De samme instruktioner gælder for MariaDB.
Konfiguration af MySQL Server
Det første trin er at indstille MySQL-serveren til at lytte på en bestemt IP-adresse eller alle IP-adresser på maskinen.
Hvis MySQL-serveren og klienterne kan kommunikere med hinanden via et privat netværk, er den bedste mulighed at indstille MySQL-serveren til kun at lytte på den private IP. Ellers, hvis du vil oprette forbindelse til serveren via et offentligt netværk, skal du indstille MySQL-serveren til at lytte på alle IP-adresser på maskinen.
For at gøre dette skal du redigere MySQL-konfigurationsfilen og tilføje eller ændre værdien af indstillingen
bind-address
. Du kan indstille en enkelt IP-adresse og IP-intervaller. Hvis adressen er
0.0.0.0
, accepterer MySQL-serveren forbindelser på alle vært IPv4-grænseflader. Hvis du har IPv6 konfigureret på dit system, skal du bruge
::
stedet for
0.0.0.0
.
Placeringen af MySQL-konfigurationsfilen varierer afhængigt af distributionen. I Ubuntu og Debian er filen placeret på
/etc/mysql/mysql.conf.d/mysqld.cnf
, mens filen i Red Hat-baserede distributioner som CentOS er filen placeret på
/etc/my.cnf
.
Åbn filen med din teksteditor:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Søg efter en linje, der begynder med
bind-address
og indstil dens værdi til den IP-adresse, som en MySQL-server skal lytte til.
Som standard er værdien indstillet til
127.0.0.1
(lytter kun i localhost).
I dette eksempel indstiller vi MySQL-serveren til at lytte på alle IPv4-grænseflader ved at ændre værdien til
0.0.0.0
bind-address = 0.0.0.0 # skip-networking
Hvis der er en linje, der indeholder
skip-networking
, skal du slette den eller kommentere den ved at tilføje
#
i starten af linjen.
I MySQL 8.0 og nyere er
bind-address
muligvis ikke til stede. I dette tilfælde skal du tilføje det under
afsnit.
Når det er gjort, skal du genstarte MySQL-tjenesten, så ændringerne træder i kraft. Kun root eller brugere med sudo-privilegier kan genstarte tjenester.
For at genstarte MySQL-tjenesten på Debian eller Ubuntu, skal du skrive:
sudo systemctl restart mysql
På RedHat-baserede distributioner som CentOS for at genstarte servicekørslen:
At give adgang til en bruger fra en ekstern maskine
Det næste trin er at give adgang til databasen til den eksterne bruger.
Log ind på MySQL-serveren som root-bruger ved at skrive:
sudo mysql
mysql -uroot -p
Fra inde i MySQL-shell skal du bruge
GRANT
sætningen til at give adgang til fjernbrugeren.
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
Hvor:
-
database_name
er navnet på den database, som brugeren vil oprette forbindelse til.user_name
er navnet på MySQL-brugeren.ip_address
er den IP-adresse, som brugeren vil oprette forbindelse fra. Brug%
til at give brugeren mulighed for at oprette forbindelse fra enhver IP-adresse.user_password
er brugeradgangskoden.
For at give adgang til en database
dbname
til en bruger ved navn
foo
med password
my_passwd
fra en klientmaskine med IP
10.8.0.5
, kører du f.eks.
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
Konfiguration af firewall
Det sidste trin er at konfigurere din firewall til at tillade trafik på port
3306
(MySQL standardport) fra fjernmaskinerne.
iptables
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
Tillad adgang fra en bestemt IP-adresse:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
UFW
UFW er standard firewall-værktøjet i Ubuntu. For at give adgang fra enhver IP-adresse på Internettet (meget usikker) kørsel:
sudo ufw allow 3306/tcp
Tillad adgang fra en bestemt IP-adresse:
sudo ufw allow from 10.8.0.5 to any port 3306
FirewallD
FirewallD er standardværktøjet til firewalladministration i CentOS. For at give adgang fra enhver IP-adresse på Internettet (meget usikker) type:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
For at give adgang fra en bestemt IP-adresse på en bestemt port, kan du enten oprette en ny FirewallD-zone eller bruge en rig regel. Opret en ny zone med navnet
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
Bekræftelse af ændringerne
For at kontrollere, at den eksterne bruger kan oprette forbindelse til MySQL-serveren, skal du køre følgende kommando:
mysql -u user_name -h mysql_server_ip -p
Hvor
user_name
er navnet på den bruger, du har givet adgang til, og
mysql_server_ip
er IP-adressen på den vært, hvor MySQL-serveren kører.
Hvis alt er konfigureret korrekt, kan du logge ind på den eksterne MySQL-server.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
Fejlen nedenfor indikerer, at den bruger, du prøver at logge på, ikke har tilladelser til at få adgang til den eksterne MySQL-server.
"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"
Konklusion
MySQL, den mest populære open source-databaseserver, lytter som standard kun til indgående forbindelser på localhost.
For at tillade fjernforbindelser til en MySQL-server skal du udføre følgende trin:
- Konfigurer MySQL-serveren til at lytte til alle eller en bestemt grænseflade. Giv adgang til den eksterne bruger. Åbn MySQL-porten i din firewall.
To virksomheder, der tilbyder tredjeparts support til Oracle's open source MySQL database samt MySQL offshoot MariaDB, har annonceret planer om at fusionere.
To virksomheder, der tilbyder tredjeparts support til Oracles open source MySQL database samt MySQL offshoot MariaDB, har meddelt planer om at fusionere.
Sådan blokeres eller tillades et program i Windows 7-firewall
Lær, hvordan du blokerer eller tillader et program i Windows 7 Firewall.
Brug af eksternt desktop-app i Windows 8 til fjernforbindelser
Lær, hvordan du konfigurerer og bruger Remote Desktop-app i Windows 8 til fjernforbindelser.