Introduction to Azure Database for MySQL
Innholdsfortegnelse:
- Konfigurere MySQL Server
- Gi tilgang til en bruker fra en ekstern maskin
- Konfigurere brannmur
- iptables
- UFW
- FirewallD
- Bekrefte endringene
- Konklusjon
Som standard lytter MySQL-serveren bare til tilkoblinger fra localhost, noe som betyr at den bare kan nås av applikasjoner som kjører på samme vert.
I noen situasjoner er det imidlertid nødvendig å få tilgang til MySQL-serveren fra ekstern plassering. For eksempel når du vil koble til den eksterne MySQL-serveren fra det lokale systemet, eller når du bruker en multiserverdistribusjon der applikasjonen kjører på en annen maskin enn databaseserveren. Et alternativ ville være å få tilgang til MySQL-serveren gjennom SSH Tunnel og et annet er å konfigurere MySQL-serveren til å godta eksterne tilkoblinger.
I denne guiden vil vi gå gjennom trinnene som er nødvendige for å tillate fjerntilkoblinger til en MySQL-server. De samme instruksjonene gjelder for MariaDB.
Konfigurere MySQL Server
Det første trinnet er å stille MySQL-serveren til å lytte på en spesifikk IP-adresse eller alle IP-adresser på maskinen.
Hvis MySQL-serveren og klientene kan kommunisere med hverandre over et privat nettverk, er det beste alternativet å stille MySQL-serveren til å kun lytte på den private IP-en. Ellers, hvis du vil koble til serveren via et offentlig nettverk, må du stille MySQL-serveren til å lytte på alle IP-adresser på maskinen.
For å gjøre det, må du redigere MySQL-konfigurasjonsfilen og legge til eller endre verdien for
bind-address
alternativet. Du kan angi en enkelt IP-adresse og IP-områder. Hvis adressen er
0.0.0.0
, godtar MySQL-serveren tilkoblinger på alle IPv4-grensesnitt som vert. Hvis du har IPv6 konfigurert på systemet ditt, bruker du
::
stedet for
0.0.0.0
.
Plasseringen av MySQL-konfigurasjonsfilen er forskjellig avhengig av distribusjonen. I Ubuntu og Debian er filen lokalisert på
/etc/mysql/mysql.conf.d/mysqld.cnf
, mens filen i Red Hat-baserte distribusjoner som CentOS ligger på
/etc/my.cnf
.
Åpne filen med tekstredigereren:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Søk etter en linje som begynner med
bind-address
og sett verdien til IP-adressen som en MySQL-server skal lytte til.
Som standard er verdien satt til
127.0.0.1
(lytter bare i localhost).
I dette eksemplet setter vi MySQL-serveren til å lytte på alle IPv4-grensesnitt ved å endre verdien til
0.0.0.0
bind-address = 0.0.0.0 # skip-networking
Hvis det er en linje som inneholder
skip-networking
, kan du slette den eller kommentere den ved å legge til
#
på begynnelsen av linjen.
I MySQL 8.0 og nyere er kanskje ikke
bind-address
stede. I dette tilfellet legger du det til under
seksjon.
Når det er gjort, start MySQL-tjenesten på nytt for at endringene skal tre i kraft. Bare root eller brukere med sudo-rettigheter kan starte tjenestene på nytt.
For å starte MySQL-tjenesten på nytt på Debian eller Ubuntu, skriver du:
sudo systemctl restart mysql
På RedHat-baserte distribusjoner som CentOS for å starte tjenestekjøringen på nytt:
Gi tilgang til en bruker fra en ekstern maskin
Neste trinn er å gi tilgang til databasen til den eksterne brukeren.
Logg på MySQL-serveren som rotbruker ved å skrive:
sudo mysql
mysql -uroot -p
Fra innsiden av MySQL-skallet bruker du
GRANT
setningen for å gi tilgang for den eksterne brukeren.
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
Hvor:
-
database_name
er navnet på databasen som brukeren vil koble seg til.user_name
er navnet på MySQL-brukeren.ip_address
er IP-adressen som brukeren vil koble seg til fra. Bruk%
å la brukeren koble seg fra en hvilken som helst IP-adresse.user_password
er brukerpassordet.
For å gi tilgang til en database
dbname
til en bruker som heter
foo
med passord
my_passwd
fra en klientmaskin med IP
10.8.0.5
, vil du for eksempel kjøre:
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
Konfigurere brannmur
Det siste trinnet er å konfigurere brannmuren din slik at den tillater trafikk på port
3306
(MySQL standardport) fra eksterne maskiner.
iptables
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
Tillat tilgang fra en spesifikk IP-adresse:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
UFW
UFW er standard brannmurverktøy i Ubuntu. Slik tillater du tilgang fra hvilken som helst IP-adresse på Internett (veldig usikker):
sudo ufw allow 3306/tcp
Tillat tilgang fra en spesifikk IP-adresse:
sudo ufw allow from 10.8.0.5 to any port 3306
FirewallD
FirewallD er standardverktøy for brannmuradministrasjon i CentOS. Slik tillater du tilgang fra hvilken som helst IP-adresse på Internett (veldig usikker) type:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
For å tillate tilgang fra en spesifikk IP-adresse på en bestemt port, kan du enten opprette en ny FirewallD-sone eller bruke en rik regel. Opprett en ny sone som heter
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
Bekrefte endringene
Følg kommandoen for å bekrefte at den eksterne brukeren kan koble seg til MySQL-serveren:
mysql -u user_name -h mysql_server_ip -p
Hvor
user_name
er navnet på brukeren du ga tilgang til og
mysql_server_ip
er IP-adressen til verten der MySQL-serveren kjører.
Hvis alt er satt opp riktig, vil du kunne logge deg på den eksterne MySQL-serveren.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
Feilen nedenfor indikerer at brukeren du prøver å logge på ikke har tillatelser til å få tilgang til den eksterne MySQL-serveren.
"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"
Konklusjon
MySQL, den mest populære open source-databaseserveren, lytter som standard bare etter innkommende tilkoblinger på localhost.
For å tillate eksterne tilkoblinger til en MySQL-server, må du utføre følgende trinn:
- Konfigurer MySQL-serveren til å lytte på alle eller et bestemt grensesnitt. Gi tilgang til den eksterne brukeren. Åpne MySQL-porten i brannmuren.
Den åpne debattkoalisjonen, inkludert begge Demokrater og republikanere oppfordret presidentkandidatene Barack Obama og John McCain til å endre noen av reglene i debattene på en måte som ville oppmuntre velgerne til å sende inn og velge spørsmål over nettet og tillate at nettsteder kan omfordele video av debattene uten opphavsrett bekymringer.
Den første debatten mellom McCain og Obama er fredag kveld på University of Mississippi. To andre er planlagt i oktober, samt en vice president-debatt. I et brev til de to kampanjene, avslørt sent på torsdag, spurte koalisjonen de to store presidentkandidatene for å tillate publikum ikke bare å stille spørsmål, men også til velg hvilke spørsmål som blir spurt i en kommende debatt. Ved bruk av nettet bør publikum kunne stemme på hvilke innsendte spørsmål som stilles, brevet sa.
Hvis du er en hyppig bruker av Wi-Fi-hotspots, finner du dette gratisprogrammet et uvurderlig verktøy, spesielt hvis du trenger å feilsøke tilkoblinger. Xirrus Wi-Fi Inspector finner nærliggende Wi-Fi-nettverk, gir en ekstraordinær informasjon om hver, administrerer Wi-Fi-tilkoblinger og overvåker og rapporterer om nettverkshastighet og ytelse.
For hvert nettverk som den finner, kan Xirrus Wi-Fi Inspektør forteller om det er kryptert eller ikke, og i så fall hvilken kryptering den bruker signalstyrken; produsent av ruteren; hvilken kanal og frekvens det bruker og om det er et tilgangspunkt eller en peer-to-peer-tilkobling - og mer også.
Bruke eksternt skrivebordsapp i Windows 8 for eksterne tilkoblinger
Lær hvordan du konfigurerer og bruker eksternt skrivebord-app i Windows 8 for eksterne tilkoblinger.