Mysql
 sql >> Base de données >  >> RDS >> Mysql

Serveur MySQL autonome

Dans certains types de déploiements, en particulier lorsque des applications dynamiques riches s'appuient sur une grande base de données, séparer le serveur de base de données du serveur d'applications peut permettre à votre application d'évoluer et d'accueillir une base d'utilisateurs beaucoup plus large. La désignation d'un serveur distinct à utiliser uniquement par MySQL permettra au serveur Web de l'application de servir le contenu plus efficacement, tandis que le serveur de base de données pourra répondre plus rapidement.

Par conséquent, ces serveurs de base de données peuvent prendre en charge plus efficacement les déploiements avec des charges de trafic élevées. Cela peut vous aider à obtenir des performances plus élevées pour une gamme d'applications, des packages populaires tels que WordPress et Drupal aux applications personnalisées écrites en Ruby on Rails et Django.

Prérequis

Dans ce guide, nous utiliserons deux Linodes. Notez que cela est différent du simple déploiement d'un deuxième profil de configuration sur votre compte Linode existant, car les deux serveurs devront fonctionner en même temps. Nous supposons que vous avez suivi le guide Configuration et sécurisation d'une instance de calcul pour les deux Linodes.

  • Pour le Linode exécutant le serveur Web, désormais le serveur d'applications, vous devriez déjà avoir installé Apache (ou votre serveur Web préféré). Pour une nouvelle installation, suivez le guide LAMP pour votre distribution. Le guide LAMP inclut MySQL, que vous n'avez pas besoin d'installer.
  • Le MySQL Linode dédié doit avoir MySQL installé. Suivez le guide d'installation du serveur de base de données MySQL pour votre distribution. Gardez à l'esprit que vous n'êtes pas obligé d'installer Apache sur le serveur MySQL dédié.

De plus, vous voudrez configurer des alias pour l'adresse IP privée de chaque Linode. Vous pouvez suivre le guide Linux Static IP Configuration pour obtenir de l'aide à ce sujet. Il est important de noter que les deux Linodes doivent être dans le même centre de données pour que le réseautage privé fonctionne. Cela permet aux serveurs de communiquer sans que le trafic soit pris en compte dans votre quota mensuel de bande passante. Il est nécessaire de redémarrer les deux Linodes après avoir configuré les adresses IP privées.

Modifier /etc/hosts

Vous souhaiterez créer des noms d'hôte pour chaque machine afin de pouvoir en garder une trace ultérieurement. Cela permet également d'économiser du travail si vous vous trouvez dans une situation où vous devez modifier l'adresse IP du serveur. Modifiez le /etc/hosts fichier pour inclure le privé Adresses IP de chaque Linode. Utilisez l'extrait suivant d'un exemple /etc/hosts fichier à titre d'exemple :

Fichier :/ etc/hôtes
1
> 127.0.0.1 localhost 192.168.192.168 mysql.example.com mysql 192.168.192.169 app.example.com app

N'oubliez pas de remplacer 192.168.192.168 et 192.168.192.169 avec les adresses IP privées réelles.

Bien que cette étape soit facultative, la configuration des hosts les entrées vous permettront d'éviter le codage en dur des configurations d'application vers des adresses IP spécifiques. Vous pourrez migrer rapidement vos serveurs d'applications et de base de données vers d'autres serveurs si jamais vous devez changer vos adresses IP.

Configuration du serveur MySQL

L'étape suivante consiste à modifier le /etc/mysql/my.cnf fichier sur votre serveur MySQL pour écouter sur votre adresse IP privée. À l'aide de votre éditeur préféré, ouvrez le fichier /etc/mysql/my.cnf fichier et insérez le nom d'hôte de la base de données MySQL. Pour cet exemple, le nom d'hôte de la base de données MySQL est mysql . Localisez l'bind-address ligne :

Fichier :/ etc/mysql/mon.cnf
1
bind-address = mysql

Vous pouvez également utiliser l'adresse IP privée. Enregistrez le fichier et exécutez la commande suivante pour redémarrer le démon MySQL :

/etc/init.d/mysql restart

Accorder l'accès à la base de données

Sur le serveur de base de données dédié, vous devrez créer un nom d'utilisateur et un mot de passe de base de données avec des droits d'accès. Ceci est possible via l'invite MySQL. Exécutez la commande suivante :

mysql -u root -p

Cela fournira une ligne de commande MySQL. Émettez les commandes suivantes, en remplaçant app avec le nom d'hôte du Linode exécutant le serveur d'application et un mot de passe fort à la place de "PASSWORD":

CREATE DATABASE webapplications;

GRANT ALL ON webapplications.* TO [email protected]'app' IDENTIFIED BY 'PASSWORD';

À ce stade, votre application peut accéder avec succès à la base de données distante et vous êtes prêt à commencer à utiliser le serveur de base de données.

Utilisation du serveur de base de données

A partir de là, tout est configuré et votre serveur de base de données est prêt à accepter une connexion de votre serveur web. Vous devriez maintenant pouvoir pointer votre application vers le serveur MySQL sans incident. Il est important de se rappeler que lors de la configuration des applications Web pour qu'elles fonctionnent avec un serveur MySQL distant, vous devez créer un utilisateur avec des droits sur le système distant (comme indiqué ci-dessus).

L'utilisation de MySQL sur un serveur de base de données séparé est très similaire à l'exécution d'un serveur de base de données local. En règle générale, les applications nécessitent que vous spécifiiez le "nom d'hôte de la base de données" et, de manière conventionnelle, les serveurs de base de données exécutés sur la machine locale ont un nom d'hôte de localhost . Lorsque vous séparez les serveurs de base de données et d'application, vous devrez spécifier le nom d'hôte, comme défini ci-dessus, dans l'application.

Par exemple, les paramètres de la base de données inWordPress sont contenus dans le wp-config.php fichier, et le nom d'hôte est spécifié au format suivant :

Fichier :wp -config.php
1
2
/** MySQL hostname */
define('DB_HOST', 'mysql');

Notez que la méthode de définition du nom d'hôte varie d'une application à l'autre. De plus, vous pouvez remplacer l'adresse IP spécifique du serveur de base de données, plutôt que d'utiliser le nom d'hôte tel que configuré dans /etc/hosts ci-dessus.

Pensez également à référencer le site Web externalMySQL pour les requêtes spécifiques à MySQL et l'aide associée.

Plus d'informations

Vous pouvez consulter les ressources suivantes pour plus d'informations sur ce sujet. Bien que ceux-ci soient fournis dans l'espoir qu'ils seront utiles, veuillez noter que nous ne pouvons pas garantir l'exactitude ou l'actualité des documents hébergés en externe.

  • Guides d'applications Web
  • Frameworks d'applications Web
  • Systèmes de gestion de base de données