I nogle former for implementeringer, især hvor rige dynamiske applikationer er afhængige af en stor database, kan adskillelse af databaseserveren fra applikationsserveren tillade din applikation at skalere og rumme en meget større brugerbase. At udpege en separat server, der udelukkende skal bruges af MySQL, vil gøre det muligt for applikationens webserver at betjene indhold mere effektivt, mens databaseserveren vil være i stand til at reagere hurtigere.
Som et resultat kan disse databaseservere mere effektivt understøtte implementeringer med høj trafikbelastning. Dette kan hjælpe dig med at opnå højere ydeevne for en række applikationer, fra populære pakker som WordPress og Drupal til brugerdefinerede applikationer skrevet i Ruby on Rails og Django.
Forudsætninger
I denne guide vil vi bruge to linoder. Bemærk, at dette er anderledes end blot at implementere en anden konfigurationsprofil på din eksisterende Linode-konto, da begge servere skal køre på samme tid. Vi antager, at du har fulgt guiden Opsætning og sikring af en beregningsinstans for begge linoder.
- For Linode, der kører webserveren, fremover applikationsserveren, bør du allerede have Apache (eller din foretrukne webserver) installeret. For en ny installation skal du følge LAMP-vejledningen til din distribution. LAMP-guiden inkluderer MySQL, som du ikke behøver at installere.
- Den dedikerede MySQL Linode bør have MySQL installeret. Følg installationsvejledningen til MySQL-databaseserveren for din distribution. Husk, at du ikke behøver at installere Apache på den dedikerede MySQL-server.
Du vil også ønske at konfigurere aliaser for den private IP-adresse for hver Linode. Du kan følge Linux Static IP-konfigurationsvejledningen for at få hjælp til dette. Det er vigtigt at bemærke, at begge linoder skal være i samme datacenter for at privat netværk fungerer. Dette gør det muligt for serverne at kommunikere uden at få trafikken til at tælle med i din månedlige båndbreddekvote. Det er nødvendigt at genstarte begge linoder efter konfiguration af de private IP-adresser.
Rediger /etc/hosts
Du vil gerne oprette værtsnavne for hver maskine, så du kan holde styr på dem senere. Dette sparer også arbejde, hvis du skulle komme i en situation, hvor du skal ændre serverens IP-adresse. Rediger /etc/hosts
fil for at inkludere den private IP-adresser på hver Linode. Brug følgende uddrag fra et eksempel på /etc/hosts
fil som et eksempel:
- Fil:/ osv/værter
1
> 127.0.0.1 localhost 192.168.192.168 mysql.example.com mysql 192.168.192.169 app.example.com app
Husk at erstatte 192.168.192.168
og 192.168.192.169
med de faktiske private IP-adresser.
Selvom dette trin er valgfrit, konfigurerer du hosts
poster vil give dig mulighed for at undgå hårdkodning af applikationskonfigurationer til specifikke IP-adresser. Du vil hurtigt være i stand til at migrere dine applikations- og databaseservere til alternative servere, hvis du nogensinde bliver nødt til at ændre dine IP-adresser.
Konfiguration af MySQL-serveren
Det næste trin er at ændre /etc/mysql/my.cnf
fil på din MySQL-server for at lytte på din private IP-adresse. Brug din yndlingseditor til at åbne /etc/mysql/my.cnf
fil og indsæt værtsnavnet for MySQL-databasen. For dette eksempel er MySQL-databasens værtsnavn mysql
. Find bind-address
linje:
- Fil:/ etc/mysql/my.cnf
1
bind-address = mysql
Du kan alternativt bruge den private IP-adresse. Gem filen, og kør følgende kommando for at genstarte MySQL-dæmonen:
/etc/init.d/mysql restart
Tildeling af databaseadgang
På den dedikerede databaseserver skal du oprette et databasebrugernavn og adgangskode med adgangsrettigheder. Dette er muligt gennem MySQL-prompten. Udfør følgende kommando:
mysql -u root -p
Dette vil give en MySQL-kommandolinje. Udsted følgende kommandoer og erstatte app
med værtsnavnet på den Linode, der kører applikationsserveren og en stærk adgangskode i stedet for "PASSWORD":
CREATE DATABASE webapplications;
GRANT ALL ON webapplications.* TO [email protected]'app' IDENTIFIED BY 'PASSWORD';
På dette tidspunkt kan din applikation få adgang til fjerndatabasen, og du er klar til at begynde at bruge databaseserveren.
Brug af databaseserveren
Fra dette tidspunkt er alt konfigureret, og din databaseserver er klar til at acceptere en forbindelse fra din webserver. Du skulle nu være i stand til at pege din applikation mod MySQL-serveren uden hændelser. Det er vigtigt at huske, at når du opsætter webapplikationer til at arbejde med en ekstern MySQL-server, skal du oprette en bruger med rettigheder til fjernsystemet (som vist ovenfor).
Brug af MySQL på en separat databaseserver ligner meget at køre en lokal databaseserver. Typisk kræver applikationer, at du angiver "databaseværtsnavn", og konventionelt har databaseservere, der kører på den lokale maskine, værtsnavnet localhost
. Når du adskiller database- og applikationsservere, skal du angive værtsnavnet, som angivet ovenfor, i applikationen.
For eksempel er inWordPress-databaseindstillinger indeholdt i wp-config.php
fil, og værtsnavnet er angivet i følgende format:
- Fil:wp -config.php
1 2
/** MySQL hostname */ define('DB_HOST', 'mysql');
Bemærk, at metoden til indstilling af værtsnavnet varierer fra applikation til applikation. Desuden kan du erstatte databaseserverens specifikke IP-adresse i stedet for at bruge værtsnavnet som konfigureret i /etc/hosts
ovenfor.
Overvej også at henvise til det eksterneMySQL-websted for MySQL-specifikke forespørgsler og relateret hjælp.
Mere information
Du ønsker måske at konsultere følgende ressourcer for yderligere oplysninger om dette emne. Selvom disse leveres i håb om, at de vil være nyttige, bemærk venligst, at vi ikke kan stå inde for nøjagtigheden eller aktualiteten af eksternt hostede materialer.
- Webapplikationsvejledninger
- Webapplikationsrammer
- Databasestyringssystemer