Connexion du serveur Mysql au serveur. Configurer une connexion à distance à MySQL

26 novembre 2016 12h27 5 360 vues | Sans commentaires

Le serveur de base de données stocke une énorme quantité d'informations importantes dans des tableaux. Le moyen le plus simple d'interagir avec ces données est sur votre ordinateur local à l'aide d'une interface graphique. Pour créer une connexion à distance à un serveur de base de données, vous devez généralement configurer MySQL pour écouter sur toutes les interfaces, restreindre l'accès au port 3306 dans le pare-feu et configurer les autorisations des utilisateurs et des hôtes. Les connexions directes à MySQL peuvent devenir un risque pour la sécurité.

Pour éliminer ces problèmes, il existe différents outils de connexion à distance : HeidiSQL sous Windows, Sequel Pro pour macOS, outil multiplateforme MySQL Workbench, etc. Grâce à ces outils, vous pouvez créer une connexion SSH à un serveur de base de données et contourner tous les dangers potentiels.

Ce didacticiel rapide vous aidera à vous connecter à un serveur de base de données distant à l'aide de MySQL Workbench.

Exigences

  • Serveur MySQL avec accès SSH (les instructions d'installation se trouvent dans).
  • Outil MySQL Workbench installé sur la machine locale. MySQL Workbench convient à la plupart des systèmes d'exploitation (Windows, macOS, Ubuntu Linux, RedHat Linux, Fedora, etc.). Pour télécharger le programme d'installation, visitez cette page.

Vous devez également disposer des informations suivantes sur le serveur :

  • Adresse IP externe du serveur MySQL.
  • Port SSH (standard - 22).
  • Compte utilisateur avec accès SSH au serveur (avec authentification par mot de passe ou clés).
  • Informations d'identification de l'utilisateur MySQL.

Connexion SSH au serveur de base de données

Après avoir installé MySQL Workbench, lancez le programme. Créez une nouvelle connexion. Pour ce faire, cliquez sur le bouton + (dans la fenêtre principale à côté de Connexions MySQL).

La fenêtre Se connecter à la base de données apparaîtra à l'écran. Saisissez les données demandées :

  • Dans le champ Nom de connexion, saisissez un nom descriptif pour la connexion (le nom de connexion permet de distinguer une connexion d'une autre). Par exemple, nous utilisons database_for_myapp.
  • Remplacez la valeur de la méthode de connexion par TCP/IP standard sur SSH.
  • Dans le champ Nom d'hôte SSH, spécifiez l'adresse IP du serveur MySQL. Si vous avez modifié le port SSH par défaut, entrez un numéro de port personnalisé séparé par deux points après l'adresse IP.
  • Dans Nom d'utilisateur SSH, spécifiez le nom d'utilisateur pour la connexion SSH.
  • Dans Mot de passe SSH, saisissez le mot de passe de l'utilisateur sélectionné. Si vous utilisez des clés au lieu d'un mot de passe, choisissez une clé SSH.
  • Laissez les champs Nom d'hôte MySQL et Port du serveur MySQL à leurs valeurs par défaut.
  • Dans Nom d'utilisateur, spécifiez le nom d'utilisateur MySQL.
  • Dans Mot de passe, saisissez un mot de passe ou laissez le champ vide. Si vous ne stockez pas votre mot de passe dans MySQL Workbench, le programme vous le demandera lors de votre connexion.
  • Pour vous assurer que tous les paramètres sont corrects, sélectionnez Tester la connexion.
  • Pour créer la connexion, cliquez sur OK.

Une fois connecté à la base de données, vous pouvez afficher des informations sur MySQL : état de la base de données, connexions et configurations actuelles, utilisateurs et droits d'accès. MySQL Workbench prend également en charge l'importation et l'exportation de vidages MySQL, afin que vous puissiez rapidement sauvegarder et restaurer votre base de données.

Une liste de bases de données peut être trouvée dans SCHEMAS dans le volet de navigation de gauche. Une flèche à côté de chaque base de données vous permet de développer les informations et de naviguer dans les tables et les objets. Vous pouvez afficher des tables, écrire des requêtes complexes et modifier des données.

MySQL Workbench vous permet également de gérer les connexions. Pour ce faire, sélectionnez Base de données → Se connecter à la base de données dans le menu, puis appuyez sur ⌘U sur Mac ou CTRL+U sur Windows et Linux. Pour vous connecter à une autre base de données, créez une nouvelle connexion.

Conclusion

MySQL Workbench vous permet de créer rapidement un tunnel SSH sécurisé vers un serveur de base de données MySQL distant et d'interagir avec les données à l'aide de votre machine locale. Cette méthode élimine toutes les actions potentiellement dangereuses et ne nécessite aucune modification des paramètres de sécurité MySQL.

Mots-clés : , 28/02/09 11,7K

Cet article s'adresse à ceux qui sont confrontés pour la première fois à la nécessité d'établir une connexion à distance à une base de données MySQL. L'article décrit les difficultés pouvant survenir lors de la mise en place d'une connexion à distance et les méthodes pour les surmonter.

Comment établir une connexion avec une base distante ?
Pour établir une connexion à distance, vous devez spécifier les paramètres qui caractérisent la connexion en cours d'établissement. Ce

* --hôte
* --protocole
* --port

Parmi les quatre protocoles possibles, seul TCP/IP permet la connexion à distance, la première condition est donc que l'ordinateur soit accessible depuis le réseau via TCP/IP. Ensuite, vous devez ajouter le nom d'hôte (ou l'adresse IP de la machine sur laquelle se trouve la base de données) dans la ligne de connexion :
mysql —host=host_name Veuillez noter que spécifier localhost comme nom d'hôte (ou l'absence d'un tel paramètre, ce qui est le même, puisqu'il s'agit de la valeur par défaut) entraîne l'accès à la machine locale.

Veuillez noter que les paramètres ont deux formes de notation : longue et courte. À son tour, si le paramètre a une valeur (par exemple, dans le cas d'un hôte, vous devez spécifier le nom de l'hôte auquel vous souhaitez vous connecter), alors la forme abrégée de l'entrée peut être utilisée avec ou sans un espace (l'exception à cette règle est le mot de passe). Les trois entrées suivantes sont donc équivalentes :

* mysql —host=monhôte.ru
* mysql -h monhôte.ru
* mysql -hmyhost.ru

Comment établir une connexion avec une base distante ?

Dans MySQL, un utilisateur est caractérisé par deux paramètres : un nom et un hôte à partir duquel il peut accéder. Par défaut, l'accès n'est autorisé qu'à partir de la machine locale, c'est-à-dire pour l'utilisateur user@localhost. Les droits d'accès sont accordés aux utilisateurs à l'aide de la commande GRANT. La commande est exécutée sous root.

Par exemple, si je souhaite créer un utilisateur pouvant se connecter à partir de n'importe quel hôte avec tous les droits, je dois alors exécuter la commande suivante :
ACCORDEZ TOUS LES PRIVILÈGES SUR `database_name`.* À monutilisateur@% IDENTIFIÉ PAR 'mot de passe' ;

Note. Veuillez noter que cette commande donne accès à l'utilisateur myuser depuis toutes les IP sauf 127.0.0.1, correspondant à localhost.
Pour l'utilisateur myuser@localhost, vous devez accorder des droits à l'aide d'une commande GRANT distincte.

Si vous décidez d'accéder à la machine locale en tant que machine distante en utilisant le protocole TCP/IP, n'oubliez pas que myuser@localhost et myuser@ip_of_your_computer sont des utilisateurs différents et que chacun d'eux doit recevoir des droits avec une commande distincte.

Le deuxième exemple montre comment donner le droit de lire la table time_zone de la base de données mysql à l'utilisateur myuser depuis la machine 192.168.0.76 avec le mot de passe mypassy :
GRANT SELECT SUR mysql.time_zone À [email protégé] IDENTIFIÉ PAR 'mypassy';
Difficultés émergentes

Si après toutes les étapes vous obtenez une erreur (Impossible de se connecter au serveur Mysql sur « votre IP » (10061)), alors la connexion est bloquée par un pare-feu (pare-feu Windows, avant-poste, antivirus ou autre).

Si une erreur se produit (le client ne prend pas en charge la demande de protocole d'authentification par le serveur ; envisagez de mettre à niveau le client MySQL), le client (c'est-à-dire votre programme) ne prend pas en charge le protocole requis par le serveur.
Cette erreur peut être corrigée en définissant le mot de passe à l'ancien format :
DÉFINIR LE MOT DE PASSE POUR user@host = OLD_PASSWORD('mot de passe');

Pour créer une base de données MySQL puis y connecter le mod, vous devez commander « Hébergement Web » dans la section « Services ». Le service est gratuit et vous permet de créer jusqu'à 10 bases de données. Après avoir commandé le service, allez dans ses paramètres, vous y trouverez l'URL, le login et le mot de passe du panneau de contrôle de l'hébergement web (capture d'écran ci-dessous).

Après autorisation, dans le menu (qui se trouve à gauche) recherchez la section « Outils », dans laquelle vous devrez vous rendre dans la rubrique « Bases de données ». Vous serez redirigé vers la section Gestion de base de données, où vous pourrez voir les bases de données que vous avez créées. Dans cette section, vous pouvez créer une nouvelle base de données en cliquant sur le bouton « Créer » (capture d'écran ci-dessous).

Après avoir cliqué sur le bouton « Créer », vous verrez une fenêtre avec les formulaires à remplir. Trouvez un nom de base de données unique et connectez-vous pour le nouvel utilisateur. Assurez-vous de cocher la case "Accès à distance", sinon votre mod ne pourra pas se connecter à la base de données. Un point très important ! Vous devez vous souvenir des données saisies, car elles seront utilisées lors de la connexion du mod, il est préférable de les noter séparément dans un document texte ; Vous pouvez voir un exemple de remplissage dans la capture d'écran ci-dessous.

En général, une base de données a déjà été créée et les données peuvent être saisies dans le mod, mais il arrive souvent que lorsque vous avez encore besoin d'importer des dumps de données SQL dans la base de données créée, ils ont l'extension .sql et vont dans le dossier avec vos fichiers de mod. Si vous n’en avez pas besoin, vous pouvez ignorer les deux paragraphes suivants. Vous pouvez importer à l'aide de l'outil « PhpMyAdmin » (sur PhpMyAdmin) qui se trouve dans le menu d'hébergement Web dans la section « Supplémentaire ». candidatures." Pour autoriser, saisissez les données que vous avez vous-même créées ci-dessus, à savoir le login utilisateur et le mot de passe de votre base de données (voir capture d'écran ci-dessous).

Après autorisation, vous verrez à gauche une liste de vos bases de données, faites un clic gauche sur votre base de données créée, puis allez dans l'élément de menu « Importer ». Sélectionnez « Parcourir votre ordinateur », puis cliquez sur le bouton « Sélectionner un fichier », tout cela est illustré dans la capture d'écran ci-dessous. Après avoir sélectionné le dump requis au format .sql, cliquez sur le bouton « Suivant » et le processus d'importation commencera. Une fois l'importation terminée, vous verrez le message « Importation terminée avec succès, N requêtes terminées (dumpname.sql) ».

La dernière partie. Saisie des données de la base de données dans le mod. Pour ce faire, vous devez utiliser l'éditeur de script pwn (pawno.exe), il est fourni en standard avec le serveur pour Windows (SA-MP Windows Server Download), vous pouvez le télécharger depuis le site officiel SA-MP.com (don Ne vous laissez pas induire en erreur, sur notre hébergement Linux, nous n'avons besoin que du programme Pawno.exe du dossier Pawno). De plus, très souvent, cet éditeur se trouve dans l'archive avec votre mod téléchargé.

Ouvrez l'éditeur Pawno.exe. Dans le menu Fichier, sélectionnez Ouvrir pour ouvrir la source de votre mod. La source porte l'extension .pwn et se trouve dans le dossier gamemodes. Après ouverture, vous devez rechercher et remplir les champs suivants (explications des points entre parenthèses):

#définir MYSQL_HOST "" (hôte de la base de données, précisez toujours 31.28.170.123)
#définir MYSQL_USER "" (utilisateur)
#définir MYSQL_DATABASE "" (nom de base)
#définir MYSQL_PASSWORD "" (mot de passe utilisateur)

Assurez-vous de spécifier la valeur suivante comme hôte - 31.28.170.123. Cette adresse IP est l'hébergeur de notre base de données d'hébergement web (à ne pas confondre avec l'IP de votre serveur de jeu). Dans les champs restants, saisissez les données que vous avez créées vous-même (après tout, ce n'est pas pour rien que nous vous avons dit au stade de la création de la base de données que vous deviez les mémoriser). À titre d'exemple des données déjà saisies, voir la capture d'écran ci-dessous.

Il ne reste plus qu'à compiler les modifications dans notre mod ; pour cela, ouvrez le menu « Build » et sélectionnez « Compile » ou appuyez simplement sur la touche F5. Après une compilation réussie, vous aurez un fichier avec le nom de votre mod édité, mais pas au format .pwn, mais au format .amx prêt à l'emploi, que vous pourrez télécharger sur votre serveur de jeu en utilisant

Après avoir installé le serveur MySQL, vous ne pouvez vous y connecter qu'à partir de la même machine. Cela a été fait pour des raisons de sécurité du système, car dans la plupart des cas, MySQL est utilisé sur le Web et que, dans de rares cas, le serveur Web et le serveur de base de données sont séparés.

Dans le segment des entreprises, il est plus correct d'utiliser 1 serveur pour toutes ces tâches. C'est stupide de conserver MySQL avec une seule base de données sur chaque serveur qui pourrait en avoir besoin. Par conséquent, il doit exister un serveur de base de données sur lequel le nombre requis de bases de données est installé pour différentes tâches.

D'ailleurs, sur le Web, un serveur de base de données et un serveur Web ne sont séparés que dans les cas où la puissance d'un serveur ne suffit pas. Vous louez un serveur dédié et y hébergez la base de données. Je voudrais préciser qu'il est raisonnable de le faire uniquement au sein d'un seul DC.

Autoriser la connexion à MySQL à distance

Dans le fichier de configuration de MySQL lui-même, il y a un paramètre adresse de liaison qui en est responsable, donc :

  1. ouvrez le fichier de configuration pour le modifier :
    sudo nano /etc/mysql/my.cnf
  2. commentez la ligne :
    # adresse de liaison = 127.0.0.1
  3. redémarrez MySQL :
    redémarrage du service sudo mysql

Commenter cette ligne équivaut à attribuer une adresse IP 0.0.0.0 , c'est-à-dire permettre à tout le monde de se connecter. Vous ne pouvez pas spécifier 2 adresses IP dans cette ligne. Si vous devez limiter la connexion au serveur MySQL, vous devez utiliser les capacités d'iptables.

Vous pouvez désormais vous connecter au serveur de base de données via un client telnet, mais pour vous connecter, vous avez besoin d'un compte autorisé à vous connecter non seulement depuis localhost. Pour ce faire, vous devez vous connecter à MySQL depuis le serveur lui-même et créer l'utilisateur suivant :

Mysql -u racine -p

Et créez un utilisateur avec la commande :

ACCORDEZ TOUS LES PRIVILÈGES SUR *.* À "new_user"@"remote_address" IDENTIFIÉ PAR "mot de passe" AVEC OPTION D'ACCORD ;

Cette ligne crée un utilisateur avec des droits illimités, ce qui n'est pas tout à fait correct. Il est plus correct de limiter au maximum l'accès de l'utilisateur qui se connecte à distance. La commande pourrait donc ressembler à ceci :

GRANT SELECT,INSERT,DELETE,UPDATE,CREATE,ALTER ON "database_name".* TO "new_user"@"remote_address" IDENTIFIÉ PAR "mot de passe" AVEC OPTION GRANT ;

Avec cette commande, nous avons limité les autorisations de l'utilisateur à une seule base de données et aux actions avec celle-ci.

Une liste complète de tous les droits pouvant être spécifiés pour un utilisateur :

  • TOUS LES PRIVILÈGES– tous les droits sur l'objet spécifié, à l'exception de la cession de droits sur cet objet ;
  • CRÉER– le droit de créer un tableau ;
  • MODIFIER– le droit de changer de table ;
  • BAISSE– le droit de détruire la table ;
  • VERROUILLER LES TABLES– le droit de verrouiller la table ;
  • CRÉER DES TABLES TEMPORAIRES– le droit de créer des tables temporaires ;
  • CRÉER UNE ROUTINE– le droit de créer des procédures et des fonctions stockées ;
  • MODIFIER LA ROUTINE– le droit de modifier ou de détruire les procédures et fonctions stockées ;
  • CRÉER UNE VUE– le droit de créer une représentation ;
  • DÉCLENCHEMENT– le droit de créer et de détruire des déclencheurs ;
  • INDICE– droits de création et de destruction d'index ;
  • EXÉCUTER– le droit d'exécuter des procédures et des fonctions stockées ;
  • ÉVÉNEMENT– le droit de créer des événements ;
  • CRÉER UN UTILISATEUR– les droits de créer, détruire, renommer un utilisateur et supprimer tous les droits. Nommé uniquement au niveau mondial ;
  • SÉLECTIONNER– le droit de prélever des échantillons ;
  • SUPPRIMER– droit à la suppression ;
  • INSÉRER– droit d'insertion ;
  • MISE À JOUR– droit de mise à jour ;
  • DÉPOSER– le droit d'utiliser les commandes SELECT ... INTO OUTFILE et LOAD DATA INFILE ;
  • PROCESSUS– le droit de visualiser tous les processus à l'aide de la commande SHOW PROCESSLIST ;
  • AFFICHER LES BASES DE DONNÉES– le droit de consulter la liste des régimes ;
  • AFFICHER LA VUE– le droit de consulter la liste des vues ;
  • FERMER– droit à la clôture.

Avec une connexion à distance à MySQL, vous pouvez vous connecter à la base de données sur le serveur d'hébergement depuis votre ordinateur personnel à l'aide de programmes de base de données qui vous conviennent.

Connexion facile

Pour établir une connexion simple à MySQL depuis l'extérieur, rendez-vous dans le Panneau de configuration et rendez-vous dans la section « Bases de données MySQL ».

Cliquez sur les boutons « Accès via IP » → « Ajouter IP » et spécifiez l'adresse IP avec laquelle vous accédez au réseau.

Vous pouvez connaître votre adresse IP sur le site inet.from.sh.

192.168.1.%

Dans le formulaire, vous pouvez également spécifier des adresses IP avec le symbole % en octets. Par exemple, pour restreindre l'accès à partir des adresses IP d'un sous-réseau :

Cliquez sur Ajouter.

  • Vous pouvez désormais vous connecter à la base de données sur votre serveur d'hébergement depuis votre ordinateur. Pour vous connecter, utilisez les paramètres suivants :
  • serveur auquel se connecter : votre nom de domaine, par exemple votredomaine.ru ;
  • port de connexion : 3306 ;

Nom d'utilisateur et mot de passe : le nom d'utilisateur et le mot de passe que vous avez définis lors de la création de la base de données.

Mysql -P 3306 -h votredomaine.ru -u mylogin_user -p mylogin_db

Connexion sécurisée via tunnel SSH

Pour assurer la sécurité de vos données, utilisez une connexion aux bases de données MySQL via un tunnel SSH.

Les données sont transmises via le tunnel SSH sous forme cryptée, ce qui élimine toute possibilité d'interception. Connexion à une base de données MySQL depuis un ordinateur exécutant MS Windows Installez le programme sur votre ordinateur

mastic

. Il s'agit d'un logiciel gratuit, vous pouvez le télécharger sur le site officiel.

Lancez le programme.

Après cela, cliquez sur le bouton « Ajouter ».

Après cela, cliquez sur le bouton « Ouvrir ». Une connexion avec votre hébergeur sera établie.

Utilisez vos informations de connexion pour vous connecter à votre panneau de contrôle d'hébergement en tant qu'identifiant et mot de passe.

Le tunnel est installé. Pour vous connecter à la base de données, utilisez le nom d'utilisateur et le mot de passe que vous avez spécifiés lors de la création de la base de données dans la section Bases de données du Panneau de configuration. Utilisez 127.0.0.1 comme adresse du serveur, port de connexion 3306. Si votre ordinateur exécute déjà un serveur de base de données MySQL, la connexion à un serveur distant sur le port 3306 ne sera pas possible. Dans ce cas, lors de la création d'une connexion dans Putty, spécifiez un port différent comme "Port source", par exemple : 3307 . Utilisez ce port lors de la connexion à la base de données.

Connexion à une base de données MySQL à partir d'un ordinateur exécutant le système d'exploitation Linux

À l'invite de commande, exécutez la commande suivante :

Ssh -L3306:localhost:3306 -n [email protégé]

  • 3306 (immédiatement après la touche -L) - un port sur l'ordinateur local auquel vous pouvez vous connecter avec le client mysql ;
  • votre connexion- votre nom de compte (connectez-vous dans le panneau de configuration) ;
  • votredomaine.ru- le nom de votre site.

Comme mot de passe, utilisez le mot de passe pour vous connecter à votre panneau de contrôle d'hébergement.

Le tunnel est installé. Pour vous connecter à la base de données, utilisez le nom d'utilisateur et le mot de passe que vous avez spécifiés lors de la création de la base de données dans la section Bases de données du Panneau de configuration.

Utilisez vos informations de connexion pour vous connecter à votre panneau de contrôle d'hébergement en tant qu'identifiant et mot de passe.

Utilisez 127.0.0.1 comme adresse du serveur, port de connexion 3306.

Le tunnel est installé. Pour vous connecter à la base de données, utilisez le nom d'utilisateur et le mot de passe que vous avez spécifiés lors de la création de la base de données dans la section Bases de données du Panneau de configuration. Utilisez 127.0.0.1 comme adresse du serveur, port de connexion 3306. Mysql -P 3306 -h 127.0.0.1 -u mon_utilisateur_login -p mon_login_db

Si votre ordinateur exécute déjà un serveur de base de données MySQL, la connexion à un serveur distant sur le port 3306 ne sera pas possible. Dans ce cas, lors du démarrage de ssh, immédiatement après le commutateur -L, spécifiez un port alternatif, par exemple 3307. Utilisez ce port lors de la connexion à la base de données.

Vérification de la connexion à la base de données MySQL Vous pouvez vérifier la connexion à la base de données à l'aide de l'utilitaire telnet . Connectez-vous à l'interface de ligne de commande (sous MS Windows : Démarrer → Exécuter

→ cmd.exe), tapez la commande :

Telnet 127.0.0.1 3306



2024

Message

Envoyer