Sådan tillades fjernforbindelser til MySQL

Hvis du arbejder med en MySQL-database , så er du allerede klar over de udfordringer, du står over for med at holde din database sikker. Fra databasehackingforsøg ved hjælp af SQL -injektioner til brute force-angreb er det svært at holde dine data sikre, især hvis du arbejder med en database eksternt.

Der er måder at konfigurere en SQL -server til at tillade fjernforbindelser, men du skal være forsigtig, da tilladelse til fjernforbindelser på en MySQL -server kan gøre din database til et let mål for hackere. Hvis du vil tillade sikre fjernforbindelser til en MySQL -database, er det her, du skal vide.

Før du begynder(Before You Begin)

Før du foretager ændringer i din MySQL -database, er det vigtigt, at du sikkerhedskopierer din database(backup your database) , især hvis du arbejder på en produktionsserver (en server i aktiv brug). Eventuelle ændringer, du foretager i din database, eller serveren, der hoster den, kan resultere i alvorligt datatab, hvis noget går galt.

Du kan også opleve, at ændringer i din servers forbindelser kan forhindre dig i at få adgang til den efterfølgende. Hvis dette sker, skal du muligvis rådføre dig med en serveradministrator for yderligere support. En god idé er at prøve eventuelle ændringer på en lokalt drevet MySQL - server for at kontrollere, om dine ændringer virker, før du prøver dem eksternt.

Det er også sandsynligt, at hvis du laver ændringer på en ekstern server, har du brug for en sikker måde at oprette forbindelse og foretage ændringer på. SSH (Secure Shell) er ofte den bedste måde at gøre dette på, da det giver dig mulighed for at oprette forbindelse til din fjernserver. Du kan også bruge SSH til at oprette forbindelse til servere på dit lokale netværk, såsom dem, der er hostet på en Raspberry Pi(hosted on a Raspberry Pi) .

Denne vejledning fører dig gennem trinene til at konfigurere MySQL til at tillade fjernforbindelser, men du skal først sikre dig, at du har direkte eller fjernadgang til serveren, der hoster din MySQL -server.

Antag(Suppose) , at du ikke har fjernadgang til din server via SSH (for eksempel). I så fald vil du ikke være i stand til at konfigurere din MySQL- database til at tillade fjernforbindelser direkte, medmindre din root mySQL-konto allerede tillader fjernforbindelser. Så du skal først etablere denne forbindelse, før du kan fortsætte.

Redigering af din MySQL-konfigurationsfil(Editing Your MySQL Configuration File)

Det første trin i at konfigurere MySQL til at tillade fjernforbindelser er at redigere din MySQL -konfigurationsfil. På dette stadium vil denne vejledning antage, at du allerede har oprettet forbindelse til serveren, pc'en eller Mac'en(Mac) , der hoster din mySQL-database eksternt og har konsoladgang. 

Alternativt kan du konfigurere en lokal MySQL -server ved hjælp af en åben terminal på Mac eller Linux eller en teksteditor på Windows .

  1. For at starte skal du bruge din foretrukne konsolteksteditor til at redigere din MySQL -databasefil. På Linux skal du skrive sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf i et terminal- eller SSH -vindue for at redigere denne fil ved hjælp af nano - editoren (forudsat at din MySQL - database er på standardplaceringen)

  1. Hvis du kører Windows , skal du åbne File Explorer og få adgang til mappen, der indeholder din MySQL - installation (f.eks. C:/Program Files/MySQL/MySQL Server 8.0 ). Åbn filen my.ini ved at bruge din standard teksteditor (f.eks. Notesblok(Notepad) ) ved at dobbeltklikke på posten. Hvis den ikke er der, skal du først oprette filen(create the file first) .

  1. Mac skal du åbne et terminalvindue og skrive sudo nano /usr/local/etc/my.cnf . Dette er standardkonfigurationsfilen for MySQL , hvis du har installeret MySQL ved hjælp af homebrew(using homebrew) .

De steder, der henvises til ovenfor, er standardplaceringerne for MySQL- konfigurationsfiler. Hvis disse kommandoer ikke virker, skal du søge efter de relevante filer ( my.cnf , mysqld.cnf eller my.ini ) manuelt for at finde den relevante filsti.

Indstilling af en sikker bindingsadresse IP-område(Setting a Safe Bind-Address IP Range)

  1. Når du har åbnet MySQL -konfigurationsfilen til din server, skal du bruge piletasten på dit tastatur til at nå bindeadressesektionen(bind-address) af ​​filen. Dette IP-område begrænser forbindelserne til din database, som typisk er indstillet til kun at tillade forbindelser fra den lokale maskine eller server, der bruger 127.0.0.1 .

  1. Hvis du vil konfigurere din MySQL -database til at tillade forbindelser fra enheder, der bruger din nuværende internetforbindelse, skal du først finde din offentlige IP-adresse(find your public IP address) og derefter erstatte 127.0.0.1 med den IP-adresse. Alternativt kan du erstatte den med en IP-adresse for den enhed eller server, du ønsker at tillade forbindelser fra.

  1. I nogle tilfælde ønsker du måske at tillade alle(all) fjernforbindelser til en MySQL- database. Dette indebærer en ekstrem risiko(extreme risk) og bør ikke bruges på en produktionsserver. Hvis du vil tillade dette, skal du dog erstatte 127.0.0.1 med 0.0.0.0 .

  1. Notér portværdien(port ) i afsnittet Grundlæggende indstillinger(Basic Settings) . Dette vil være påkrævet i næste afsnit. Hvis den ikke er synlig, vil standardværdien blive brugt, som er port 3306 . Du kan tilføje din egen port ved at skrive port = xxxx på en ny linje, og erstatte xxxx med en passende portværdi.

  1. Når du har konfigureret bindingsadressen(bind-address ) i din MySQL - konfigurationsfil, skal du gemme filen. Hvis du er på Linux , skal du vælge Ctrl + O og Ctrl + X for at gøre dette. På Mac skal du vælge Command + O og Command + X . Windows-brugere kan gemme ved at vælge Filer(File ) > Gem(Save) .

  1. Dernæst kan Linux- og Mac - brugere genstarte MySQL ved at skrive mysql.server stop && mysql.server start eller mysql.server genstart(mysql.server restart) . Du skal muligvis hæve kommandoen ved at bruge sudo(using sudo) (f.eks. sudo mysql.server genstart(sudo mysql.server restart) ) og bruge den passende sti til mysql.server-filen (f.eks. /usr/local/bin/mysql.server ).

  1.  Hvis ovenstående kommando ikke virker, prøv sudo service mysql genstart(sudo service mysql restart ) i stedet.

  1. For at genstarte MySQLWindows skal du åbne et nyt PowerShell -vindue ved at højreklikke på Start - menuen og vælge Windows PowerShell (Admin) . I PowerShell-vinduet skal du skrive net stop mysql80 efterfulgt af net start mysql80 , og erstatte mysql80 med det korrekte servicenavn på din pc.

Hvis du ikke er sikker på det korrekte servicenavn på Windows , skal du skrive net start for at finde det. Hvis du ikke kan genindlæse din konfiguration, genstart din server og genindlæs MySQL manuelt (hvis nødvendigt) i stedet.

Konfiguration af dine firewalls(Configuring Your Firewalls)

På dette stadium bør din MySQL - database tillade fjernforbindelser fra enheder, der bruger den IP-adresse, du har angivet som bindeadresseværdien(bind-address) i din MySQL -konfigurationsfil (eller fra alle enheder, hvis du i stedet indstiller denne værdi til 0.0.0.0 ). Forbindelser vil dog stadig blive blokeret af din enhed eller netværksfirewall(device or network firewall) .

De fleste servere og pc'er bruger en firewall til at blokere forbindelser, medmindre der gives adgang til en specifik port. Trinnene til at konfigurere dette vil variere, afhængigt af om du kører MySQLWindows eller Linux . Mac -firewalls er som standard deaktiveret, så du behøver ikke at udføre yderligere trin her.

Konfigurer Linux Firewalls(Configure Linux Firewalls)

Mange Linux-servere bruger iptables som standard firewall-værktøj. Du kan konfigurere det ved at følge nedenstående trin.

  1. Åbn en terminal eller SSH -forbindelse, og skriv sudo iptables -A INPUT -p tcp -s XXXX –dport YYYY -j ACCEPT . Erstat XXXX med IP-adressen for den enhed, du ønsker at tillade MySQL - forbindelser fra(from) , og erstat YYYY med den tilsvarende portværdi fra din MySQL -konfigurationsfil (f.eks. 3306 ).

  1. Dette vil konfigurere firewallen midlertidigt. Hvis du bruger en Debian- eller Ubuntu-baseret Linux - server, gør denne ændring permanent ved at skrive sudo netfilter-persistent save og sudo netfilter-persistent reload i terminal- eller SSH-vinduet.

Hvis iptables ikke er standard firewall-værktøjet til din Linux -distribution, skal du konsultere din distributions brugermanual for mere information. Hvis visse pakker (såsom netfilter-persistent ) ikke er tilgængelige, skal du bruge din distributions softwarelagerværktøj til at installere det (f.eks. sudo apt install netfilter-persistent ).

Konfigurer Windows Firewalls(Configure Windows Firewalls)

Hvis du bruger en Windows-pc eller -server til at hoste din database, kan du konfigurere din firewall ved at bruge disse trin:

  1. Højreklik på(Right-click) Start -(Start) menuen, og vælg Kør(Run) .

  1. Skriv wf.msc i feltet Kør(Run) og vælg OK .

  1. I vinduet Windows Defender skal du vælge Indgående regler(Inbound Rules ) > Ny regel(New Rule) .

  1. I vinduet Guiden Ny indgående regel skal du vælge (New Inbound Rule Wizard)Port > Næste(Next) .

  1. I den næste menu skal du vælge TCP fra indstillingerne, skrive 3306 (eller hvilken portværdi der er angivet i din MySQL -konfigurationsfil), og derefter vælge Næste(Next) .

  1. I handlingsmenuen(Action) skal du lade standardindstillingen Tillad forbindelsen(Allow the connection) være aktiveret, og derefter vælge Næste(Next) .

  1. Bekræft, at du ønsker, at reglen skal gælde for alle netværkstyper, og vælg derefter Næste(Next)

  1. Indtast et beskrivende navn for reglen (f.eks. MySQL ) i den angivne port, og vælg derefter Udfør(Finish) for at tilføje den til din liste over firewallregler.

Hvis du har problemer med at oprette forbindelse, skal du gentage disse trin ovenfor, og sørg for at oprette en ny udgående regel(outbound rule ) i dine firewallindstillinger ved at bruge de samme detaljer (port 3306 osv.). Du skal muligvis også konfigurere din lokale netværksrouter til at åbne de nødvendige blokerede porte(open the necessary blocked ports) for at tillade indgående og udgående forbindelser til din database. 

Tilslutning til en ekstern server ved hjælp af MySQL(Connecting to a Remote Server Using MySQL)

Efter at have konfigureret din MySQL- database til at tillade fjernforbindelser, skal du faktisk oprette en forbindelse til den. Du kan gøre dette ved at bruge mysql - kommandoen ( mysql.exeWindows ) fra en terminal eller PowerShell - vindue.

Hvis du kører Windows , skal du sørge for, at MySQL er installeret lokalt(MySQL is installed locally) , før du begynder. Mac - brugere kan installere MySQL ved hjælp af homebrew(using homebrew) fra terminalen ( brew install mysql ), mens Linux -brugere kan bruge deres lokale app-lager (f.eks. sudo apt install mysql ) til at installere de nødvendige pakker.

Tilslutning til MySQL på Linux eller Mac(Connecting to MySQL on Linux or Mac)

  1. For at oprette forbindelse til din eksterne MySQL -server på Mac eller Linux skal du åbne et nyt terminalvindue og skrive mysql -u brugernavn -h XXXX:XXXX -p(mysql -u username -h X.X.X.X:XXXX -p) . Erstat XXXX:XXXX med din fjernserver-IP-adresse og portnummer (f.eks. 100.200.100.200:3306 ) og brugernavn(username) med dit MySQL-brugernavn.

  1. Når du bliver bedt om det, skal du bekræfte din adgangskode. Hvis forbindelsen lykkes, vises en succesmeddelelse i terminalen.

Opretter forbindelse til MySQL på Windows(Connecting to MySQL on Windows)

  1. For at oprette forbindelse til en ekstern MySQL -server på Windows skal du åbne et nyt PowerShell -vindue ved at højreklikke på menuen Start og vælge Windows PowerShell (Admin) .

  1. I det nye PowerShell-vindue skal du skrive cd “C:\Program Files\MySQL\MySQL Workbench 8.0\ " for at indtaste den korrekte mappe, og erstatte denne mappe med den korrekte installationsmappe på din pc. For eksempel, hvis din version af MySQL er 8.0.1, skal du bruge mappen MySQL Workbench 8.0.1 i stedet.

  1. Derfra skal du skrive .\mysql.exe -u username -h X.X.X.X:XXXX -p . Erstat XXXX:XXXX med din fjernserver-IP-adresse og portnummer (f.eks. 100.200.100.200:3306 ) og brugernavn(username) med et MySQL - brugernavn, der tillader fjernadgang (såsom root ). Følg(Follow) eventuelle yderligere instruktioner på skærmen.
  2. Angiv din adgangskode, når du bliver bedt om det, for at fuldføre login-processen og få fjernadgang til din MySQL - database.

Hvis dette ikke virker, skal du oprette forbindelse til serveren eller pc'en, der hoster din MySQL -server ved hjælp af SSH (eller få adgang til den direkte) ved at bruge disse trin og bruge -h localhost - argumentet. Du kan derefter oprette en passende brugerkonto ved at følge nedenstående trin.

Tillader fjernbrugeradgang til en MySQL-database(Allowing Remote User Access to a MySQL Database)

På dette tidspunkt bør du være i stand til at oprette forbindelse til din MySQL -server eksternt ved hjælp af din servers root-brugerkonto eller en anden brugerkonto med forhøjede privilegier. Da dette adgangsniveau er usikkert, foretrækker du måske at oprette en mere begrænset konto for at få adgang til din MySQL- database.

Denne konto vil have begrænset adgang til din MySQL -server, så den kun kan interagere med udvalgte databaser. Det vil ikke være i stand til at foretage mere alvorlige ændringer, såsom adgang til andre databasedata, oprettelse af nye brugerkonti osv. 

Du skal have mulighed for at logge ind på din MySQL -server eksternt. Hvis du ikke kan bruge din root-konto eksternt, skal du få adgang til din servers shell ved hjælp af mysql - kommandoen via en ekstern SSH - forbindelse eller ved direkte at få adgang til pc'en eller serveren, der hoster serveren.

  1. I din eksterne MySQL - shell (ved hjælp af mysql -værktøjet), skriv CREATE USER “username”@”x.x.x.x” IDENTIFIED BY “password”; og vælg Enter . Erstat brugernavnet(username ) med det brugernavn, du ønsker at oprette, xxxx med den IP-adresse, du ønsker at oprette forbindelse fra, og adgangskoden(password) med en passende adgangskode.

  1. Du skal give din nye konto de nødvendige tilladelser. For at gøre dette, skriv GRANT ALL ON databasename.* TO username@”x.x.x.x”; og erstat databasenavn, brugernavn(databasename, username, ) og xxxx  med de korrekte detaljer. Hvis du ønsker det, skal du erstatte databasenavn(databasename) med * for at give det adgang til alle databaser. 

Med adgang givet, skal du bruge trinene i afsnittet ovenfor for at oprette forbindelse til din server eksternt ved hjælp af din nye konto (f.eks. mysql -u brugernavn -h XXXX:XXXX -p(mysql -u username -h X.X.X.X:XXXX -p) ).

Sikring af dine databasedata(Securing Your Database Data)

Uanset om du arbejder med MySQL eller en anden type SQL -database, er det vigtigt at holde dine forbindelser sikre for at opretholde din datasikkerhed. En god måde at gøre dette på er at generere SSH-nøgler til fjernadgang(generate SSH keys for remote access) til din server i stedet for at stole på forældede (og let gættelige) adgangskoder.

Hvis du er bekymret for tab af data, kan du nemt sikkerhedskopiere din database(back up your database) online. De fleste databaser køres ved hjælp af Linux -servere - du kan nemt automatisere en Linux-fil backup(automate a Linux file backup easily) . Hvis du kører MySQLWindows , kan du konfigurere et lignende automatisk backup-system til Windows(automatic backup system for Windows) , så du kan gendanne dine data i en nødsituation.



About the author

I erhvervslivet handler det om at skabe værdi for dine kunder og kunder. Jeg fokuserer på at give trin-for-trin instruktioner, der hjælper mine læsere med at få mest muligt ud af deres hardware og software ved hjælp af Microsoft Office. Mine færdigheder omfatter installation af tastatur og drivere, samt Microsoft Office-support. Med min mange års erfaring i branchen kan jeg hjælpe dig med at dække ethvert hardware- eller softwarebehov, du måtte have.



Related posts