In sommige soorten implementaties, met name waar rijke dynamische toepassingen afhankelijk zijn van een grote database, kan het scheiden van de databaseserver van de toepassingsserver ervoor zorgen dat uw toepassing kan schalen en een veel groter gebruikersbestand kan accommoderen. Door een aparte server aan te wijzen die uitsluitend door MySQL wordt gebruikt, kan de webserver van de applicatie de inhoud efficiënter aanbieden, terwijl de databaseserver sneller kan reageren.
Als gevolg hiervan kunnen deze databaseservers implementaties met een hoge verkeersbelasting effectiever ondersteunen. Dit kan u helpen hogere prestaties te bereiken voor een reeks toepassingen, van populaire pakketten zoals WordPress en Drupal tot aangepaste toepassingen die zijn geschreven in Ruby on Rails en Django.
Vereisten
In deze gids zullen we twee Linodes gebruiken. Houd er rekening mee dat dit iets anders is dan het eenvoudig implementeren van een tweede configuratieprofiel op uw bestaande Linode-account, omdat beide servers tegelijkertijd moeten draaien. We gaan ervan uit dat u de handleiding voor het instellen en beveiligen van een rekeninstantie voor beide Linodes hebt gevolgd.
- Voor de Linode waarop de webserver draait, en voortaan de applicatieserver, moet Apache (of de webserver van uw voorkeur) al geïnstalleerd zijn. Volg voor een nieuwe installatie de LAMP-gids voor uw distributie. De LAMP-gids bevat MySQL, die u niet hoeft te installeren.
- De speciale MySQL Linode zou MySQL moeten hebben geïnstalleerd. Volg de installatiehandleiding van de MySQL-databaseserver voor uw distributie. Houd er rekening mee dat u Apache niet hoeft te installeren op de speciale MySQL-server.
U zult ook aliassen willen configureren voor het privé-IP-adres van elke Linode. U kunt de handleiding Linux Static IP Configuration volgen voor hulp hierbij. Het is belangrijk op te merken dat beide Linodes zich in hetzelfde datacenter moeten bevinden om privénetwerken te laten werken. Hierdoor kunnen de servers communiceren zonder dat het verkeer meetelt voor uw maandelijkse bandbreedtequotum. Het is noodzakelijk om beide Linodes opnieuw op te starten na het configureren van de privé IP-adressen.
Bewerk /etc/hosts
U wilt voor elke machine hostnamen maken, zodat u deze later kunt bijhouden. Dit bespaart ook werk, mocht u zich in een situatie bevinden waarin u het IP-adres van de server moet wijzigen. Bewerk de /etc/hosts
bestand om de private . op te nemen IP-adressen van elke Linode. Gebruik het volgende fragment uit een voorbeeld /etc/hosts
bestand als voorbeeld:
- Bestand:/ etc/hosts
1
> 127.0.0.1 localhost 192.168.192.168 mysql.example.com mysql 192.168.192.169 app.example.com app
Vergeet niet om 192.168.192.168
te vervangen en 192.168.192.169
met de daadwerkelijke privé IP-adressen.
Hoewel deze stap optioneel is, is het configureren van hosts
items kunt u applicatieconfiguraties met harde codering naar specifieke IP-adressen vermijden. U kunt uw applicatie- en databaseservers snel migreren naar alternatieve servers als u ooit uw IP-adressen moet wijzigen.
De MySQL-server configureren
De volgende stap is het aanpassen van de /etc/mysql/my.cnf
bestand op uw MySQL-server om te luisteren op uw privé IP-adres. Open met uw favoriete editor de /etc/mysql/my.cnf
bestand en voer de hostnaam van de MySQL-database in. Voor dit voorbeeld is de hostnaam van de MySQL-database mysql
. Zoek het bind-address
regel:
- Bestand:/ etc/mysql/my.cnf
1
bind-address = mysql
U kunt ook het privé-IP-adres gebruiken. Sla het bestand op en voer de volgende opdracht uit om de MySQL-daemon opnieuw te starten:
/etc/init.d/mysql restart
Databasetoegang verlenen
Op de speciale databaseserver moet u een gebruikersnaam en wachtwoord voor de database met toegangsrechten maken. Dit is mogelijk via de MySQL-prompt. Geef het volgende commando:
mysql -u root -p
Dit levert een MySQL-opdrachtregel op. Geef de volgende opdrachten, ter vervanging van app
met de hostnaam van de Linode waarop de applicatieserver draait en een sterk wachtwoord in plaats van "PASSWORD":
CREATE DATABASE webapplications;
GRANT ALL ON webapplications.* TO [email protected]'app' IDENTIFIED BY 'PASSWORD';
In dit stadium heeft uw toepassing met succes toegang tot de externe database en bent u klaar om de databaseserver te gaan gebruiken.
De databaseserver gebruiken
Vanaf dit punt is alles geconfigureerd en is uw databaseserver klaar om een verbinding van uw webserver te accepteren. U zou nu zonder problemen uw toepassing naar de MySQL-server moeten kunnen verwijzen. Het is belangrijk om te onthouden dat wanneer u webapplicaties instelt om te werken met een externe MySQL-server, u een gebruiker met rechten voor het externe systeem moet maken (zoals hierboven weergegeven).
Het gebruik van MySQL op een aparte databaseserver lijkt sterk op het draaien van een lokale databaseserver. Doorgaans vereisen toepassingen dat u "databasehostnaam" opgeeft, en conventioneel hebben databaseservers die op de lokale computer worden uitgevoerd de hostnaam localhost
. Wanneer u database- en applicatieservers van elkaar scheidt, moet u de hostnaam specificeren, zoals hierboven ingesteld, in de applicatie.
De database-instellingen van inWordPress zijn bijvoorbeeld opgenomen in de wp-config.php
bestand, en de hostnaam is gespecificeerd in het volgende formaat:
- Bestand:wp -config.php
1 2
/** MySQL hostname */ define('DB_HOST', 'mysql');
Merk op dat de methode voor het instellen van de hostnaam verschilt van toepassing tot toepassing. Bovendien kunt u het specifieke IP-adres van de databaseserver vervangen in plaats van de hostnaam te gebruiken zoals geconfigureerd in /etc/hosts
hierboven.
Overweeg ook om de externe MySQL-website te raadplegen voor MySQL-specifieke vragen en gerelateerde hulp.
Meer informatie
U kunt de volgende bronnen raadplegen voor aanvullende informatie over dit onderwerp. Hoewel deze worden verstrekt in de hoop dat ze nuttig zullen zijn, houd er rekening mee dat we niet kunnen instaan voor de nauwkeurigheid of tijdigheid van extern gehost materiaal.
- Handleidingen voor webtoepassingen
- Webtoepassingsframeworks
- Databasebeheersystemen