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

Connectez-vous à MySQL à distance

Il s'agit d'un tutoriel avancé. Attention ! Nous ne pouvons fournir aucune assistance pour ce processus et nous ne pouvons pas non plus résoudre les problèmes causés par celui-ci. Assurez-vous d'effectuer une sauvegarde complète du serveur avant de continuer !

Il peut parfois être utile d'activer les connexions distantes à MySQL. Cela vous permet de vous connecter directement à MySQL sur l'un de vos serveurs à partir d'une application ou d'un client MySQL exécuté sur un système différent.

Il existe deux manières différentes d'accéder à MySQL à distance :

  1. À l'aide d'un tunnel SSH.
  2. Activer l'accès direct à MySQL à partir de systèmes distants

Connexion à MySQL à l'aide d'un tunnel SSH

L'utilisation d'un tunnel SSH est l'option la plus simple et la plus sûre pour accéder à MySQL à distance à des fins de développement. Un tunnel SSH donnera l'impression que MySQL s'exécute sur votre système local. Pour ce faire, SSH ouvre un port local et transfère de manière transparente toutes les communications via ce port vers MySQL exécuté sur votre serveur.

Pour créer un tunnel SSH depuis Mac ou Linux, vous pouvez exécuter la commande SSH en ligne de commande avec le -L pour activer le transfert de port local.

ssh -L localhost:2000:localhost:3306 serverpilot@SERVER_IP_ADDRESS

Dans l'exemple ci-dessus, SSH ouvrirait le port 2000 sur votre système local, et vous pourrez ensuite communiquer avec MySQL en vous connectant à ce port local. Par exemple, vous pouvez vous connecter à l'aide de la commande MySQL :

mysql --protocol=tcp --host=localhost --port=2000 --user=DB_USER_NAME -p
Ne laissez pas tomber --protocol=tcp ou MySQL peut ignorer silencieusement le --host et --port options.

Vous pouvez également créer des tunnels SSH sous Windows à l'aide de PuTTy, le client SSH Windows populaire.

Activation de l'accès direct à MySQL à partir de systèmes distants

Attention ! Autoriser l'accès direct à MySQL augmente le risque que votre serveur soit compromis par des attaquants. Attention ! MySQL n'utilise pas de connexions sécurisées par défaut. Le manuel MySQL contient plus d'informations sur SSL avec MySQL.

Étape 1 :Configurez MySQL pour qu'il écoute sur toutes les interfaces.

Par défaut, MySQL n'écoute que les connexions sur localhost , la première étape consiste donc à reconfigurer MySQL sur votre serveur de base de données pour qu'il écoute sur toutes les interfaces. Pour ce faire, connectez-vous à votre serveur en tant que root .

Si vous utilisez un serveur Ubuntu 16.04 ou 18.04, modifiez ce fichier :

/etc/mysql/mysql.conf.d/mysqld.cnf

Pour les serveurs 14.04 ou 12.04, modifiez ce fichier :

/etc/mysql/my.cnf

Recherchez la ligne suivante dans l'un ou l'autre des fichiers :

bind-address = 127.0.0.1

Modifier l'adresse de liaison à 0.0.0.0 :

bind-address = 0.0.0.0

Enregistrez ce fichier, puis exécutez la commande suivante en tant que root :

sudo service mysql restart

Étape 2 :Ouvrez le port TCP 3306 dans le pare-feu de votre serveur.

Le pare-feu configuré par ServerPilot bloque tout accès à MySQL depuis l'extérieur de votre serveur. Vous devrez donc personnaliser votre pare-feu pour autoriser l'accès à MySQL.

Pour ouvrir l'accès à MySQL depuis l'extérieur de votre serveur, consultez notre article sur la personnalisation de votre pare-feu.

Étape supplémentaire pour EC2 :autorisez le port TCP 3306 dans vos groupes de sécurité.

S'il s'agit d'un serveur EC2, vous devez également autoriser le port 3306 dans les groupes de sécurité de votre serveur.

Configurez vos applications pour utiliser l'hôte distant.

Une fois que vous avez configuré le serveur MySQL distant, vous souhaiterez configurer votre ou vos applications pour utiliser cet hôte pour les transactions de base de données. Ceci est généralement configuré dans le fichier de configuration de l'application, et nous utiliserons WordPress comme exemple.

Ouvrez le fichier wp-config.php de l'application.

Sur cette ligne :

define('DB_HOST', 'localhost');

Remplacez "localhost" par l'adresse IP ou le nom d'hôte complet de votre serveur MySQL distant. L'adresse IP sera généralement un choix plus rapide et plus fiable, car elle ne dépend pas de la résolution DNS.

Enregistrez le fichier et quittez, et vous êtes prêt ! Vous pouvez maintenant tester votre application pour vous assurer qu'elle fonctionne correctement.