VB NET Create Connection from Client To Remote Server MySQL 2017
Inhoudsopgave:
- MySQL Server configureren
- Toegang verlenen aan een gebruiker vanaf een externe machine
- Firewall configureren
- iptables
- UFW
- FirewallD
- Wijzigingen controleren
- Conclusie
Standaard luistert de MySQL-server alleen naar verbindingen van localhost, wat betekent dat deze alleen toegankelijk is voor toepassingen die op dezelfde host worden uitgevoerd.
In sommige situaties is het echter noodzakelijk om toegang te krijgen tot de MySQL-server vanaf een externe locatie. Bijvoorbeeld wanneer u verbinding wilt maken met de externe MySQL-server vanaf uw lokale systeem, of wanneer u een multi-server-implementatie gebruikt waarbij de toepassing op een andere machine draait dan de databaseserver. Een optie zou zijn om toegang te krijgen tot de MySQL-server via SSH Tunnel en een andere optie is om de MySQL-server te configureren om externe verbindingen te accepteren.
In deze handleiding zullen we de stappen doorlopen die nodig zijn om externe verbindingen met een MySQL-server toe te staan. Dezelfde instructies gelden voor MariaDB.
MySQL Server configureren
De eerste stap is het instellen van de MySQL-server om te luisteren op een specifiek IP-adres of alle IP-adressen op de machine.
Als de MySQL-server en clients via een privénetwerk met elkaar kunnen communiceren, is de beste optie om de MySQL-server zo in te stellen dat deze alleen op het private IP-adres luistert. Als u anders verbinding wilt maken met de server via een openbaar netwerk, stelt u de MySQL-server in op alle IP-adressen op de machine.
Hiertoe moet u het MySQL-configuratiebestand bewerken en de waarde van de
bind-address
toevoegen of wijzigen. U kunt een enkel IP-adres en IP-bereiken instellen. Als het adres
0.0.0.0
, accepteert de MySQL-server verbindingen op alle IPv4-interfaces van de host. Als u IPv6 op uw systeem hebt geconfigureerd, gebruik dan
::
plaats van
0.0.0.0
.
De locatie van het MySQL-configuratiebestand verschilt afhankelijk van de distributie. In Ubuntu en Debian bevindt het bestand zich op
/etc/mysql/mysql.conf.d/mysqld.cnf
, terwijl in Red Hat-gebaseerde distributies zoals CentOS het bestand zich bevindt op
/etc/my.cnf
.
Open het bestand met uw teksteditor:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Zoek naar een regel die begint met
bind-address
en stel de waarde in op het IP-adres waarnaar een MySQL-server moet luisteren.
De waarde is standaard ingesteld op
127.0.0.1
(luistert alleen in localhost).
In dit voorbeeld stellen we de MySQL-server in om op alle IPv4-interfaces te luisteren door de waarde te wijzigen naar
0.0.0.0
bind-address = 0.0.0.0 # skip-networking
Als er een regel met
skip-networking
, verwijdert u deze of geeft u een opmerking door
#
aan het begin van de regel toe te voegen.
In MySQL 8.0 en hoger is de
bind-address
adresrichtlijn mogelijk niet aanwezig. Voeg deze in dit geval toe onder de
sectie.
Nadat u klaar bent, start u de MySQL-service opnieuw om de wijzigingen door te voeren. Alleen root of gebruikers met sudo-rechten kunnen services opnieuw starten.
Typ het volgende om de MySQL-service opnieuw te starten op Debian of Ubuntu:
sudo systemctl restart mysql
Op RedHat gebaseerde distributies zoals CentOS om de service run opnieuw te starten:
Toegang verlenen aan een gebruiker vanaf een externe machine
De volgende stap is om de externe gebruiker toegang tot de database te verlenen.
Log in op de MySQL-server als rootgebruiker door het volgende te typen:
sudo mysql
mysql -uroot -p
Gebruik vanuit de MySQL-shell de instructie
GRANT
om toegang te verlenen aan de externe gebruiker.
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
Waar:
-
database_name
is de naam van de database waarmee de gebruiker verbinding zal maken.user_name
is de naam van de MySQL-gebruiker.ip_address
is het IP-adres waarmee de gebruiker verbinding maakt. Gebruik%
om de gebruiker toe te staan verbinding te maken vanaf elk IP-adres.user_password
is het gebruikerswachtwoord.
Als u bijvoorbeeld toegang wilt verlenen tot een database-
dbname
aan een gebruiker met de naam
foo
met wachtwoord
my_passwd
vanaf een clientcomputer met IP
10.8.0.5
, zou u het volgende uitvoeren:
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
Firewall configureren
De laatste stap is het configureren van uw firewall om verkeer op poort
3306
(standaardpoort MySQL) van de externe machines toe te staan.
iptables
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
Toegang toestaan vanaf een specifiek IP-adres:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
UFW
UFW is het standaard firewall-hulpprogramma in Ubuntu. Toegang vanaf elk IP-adres op internet (zeer onveilig) uitvoeren:
sudo ufw allow 3306/tcp
Toegang toestaan vanaf een specifiek IP-adres:
sudo ufw allow from 10.8.0.5 to any port 3306
FirewallD
FirewallD is het standaard firewallbeheerprogramma in CentOS. Om toegang toe te staan vanaf elk IP-adres op internet (erg onveilig) type:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
Om toegang vanaf een specifiek IP-adres op een specifieke poort toe te staan, kunt u een nieuwe FirewallD-zone maken of een rich rule gebruiken. Maak een nieuwe zone met de naam
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
Wijzigingen controleren
Voer de volgende opdracht uit om te controleren of de externe gebruiker verbinding kan maken met de MySQL-server:
mysql -u user_name -h mysql_server_ip -p
Waar
user_name
is de naam van de gebruiker
mysql_server_ip
u toegang hebt verleend en
mysql_server_ip
is het IP-adres van de host waarop de MySQL-server wordt uitgevoerd.
Als alles correct is ingesteld, kunt u zich aanmelden bij de externe MySQL-server.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
De onderstaande fout geeft aan dat de gebruiker die u probeert in te loggen geen machtigingen heeft voor toegang tot de externe MySQL-server.
"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"
Conclusie
MySQL, de meest populaire open-source databaseserver, luistert standaard alleen naar inkomende verbindingen op localhost.
Om externe verbindingen met een MySQL-server toe te staan, moet u de volgende stappen uitvoeren:
- Configureer de MySQL-server om op alle of een specifieke interface te luisteren. Toegang tot de externe gebruiker. Open de MySQL-poort in uw firewall.
India voegt 9 miljoen nieuwe mobiele verbindingen toe
De mobiele sector in India blijft sterk groeien en voegt in juni 9 miljoen nieuwe abonnees toe.
Skype naar regelgevers: push mobiele operators om VoIP toe te staan
Skype donderdag drong er bij regelgevers op aan om tussenbeide te komen om ervoor te zorgen dat gebruikers niet geblokkeerd zijn om hun mobiele telefoons om toegang te krijgen tot telefoongesprekken via internet.
Externe bureaublad-app gebruiken in Windows 8 voor externe verbindingen
Meer informatie over het instellen en gebruiken van de Remote Desktop-app in Windows 8 voor externe verbindingen.