Connexion en SSH au serveur hebergeant mysql

Fermé
zenxb - Modifié le 17 mai 2021 à 14:12
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 - 17 mai 2021 à 14:33
Bonjour,

Dans le cadre d'un devoir, on me demande de me connecter en ssh au serveur hébergeant mon serveur MySQL. J'utilise une VM ubuntu server sur laquelle est installé
mysql-server
. J'ai donc pensé que le serveur hébergeant le service MySQL était mon
localhost
et j'ai donc tapé la commande :

ssh nom_utilisateur@127.0.0.1


... mais cela ne fonctionne pas, car quand je tente de me connecter par la suite au serveur MySQLd en tapant
mysql
ou
sudo mysql
, je n'ai pas les droits.
Quelqu'un aurait des éléments de réponses à m'apporter ?

Merci beaucoup à tous !
A voir également:

1 réponse

mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748
Modifié le 17 mai 2021 à 14:33
Bonjour,

Pré-requis
  • Pas besoin de
    sudo
    pour lancer
    mysql
    .
  • Pour te connecter à un serveur
    mysqld
    , il faut généralement préciser au client
    mysql
    avec quel utilisateur (option
    -u
    ) tu souhaites te connecter. Il est important de prciser que les utilisateurs mysql et linux sont deux considérations indépendantes. En effet, les profils mysql sont définis dans la table
    mysql.user
    par le couple (login, ip du client). Le profil administrateur correspond à
    root@127.0.0.1
    . Typiquement, si tu veux te connecter en administrateur sur le serveur mysql de ton propre PC, tu lanceras dans un shell :


mysql -u root -p
  • Une fois identifié, tu peux retrouver la liste des utilisateurs mysql en tapant dans ton client
    mysql
    les commandes suivantes :


use mysql
select user, host from user;
  • Un serveur mysql bien configuré ne devrait autoriser que des connexions locales. Cela évite qu'il se fasse attaquer de l'extérieur. Cela se manifeste à deux niveaux :
    • L'interface sur laquelle écoute le serveur
      mysqld
      (elle est définie dans
      /etc/mysql/my.cnf
      , par défaut
      127.0.0.1
      ) ;
    • La liste des profils mysql définis dans la table
      mysql.user
      . Par exemple si seul
      toto@127.0.0.1
      , l'utilisateur mysql
      toto
      ne peut se connecter au serveur
      mysqld
      que si le client
      mysql
      est lancé depuis la même machine.
  • ssh
    permet de lancer un shell sur une machine distante. Cela permet d'accéder à une base MySQL hébergée sur un autre ordinateur alors que ce serveur MySQL n'autorise que des connexions locales (ce qui, je le rappelle est fortement recommandé).
  • Se connecter en ssh à sa propre machine n'a donc pas d'intérêt pratique. Si tu veux malgré tout le faire, tu peux parfaitement écrire
    ssh login@localhost
    au lieu de
    ssh login@127.0.0.1
    , le résultat sera le même (voir
    /etc/hosts
    ).


Cas d'usage typique

Supposons que ton serveur mysql soit hébergé sur le serveur distant dont l'IP est
11.22.33.44
, sur laquelle tu peux te connecter avec l'utilisateur
toto
. La commande
ssh
sera alors :

ssh user@11.22.33.44


Supposons que sur ce serveur, l'utilisateur
toto
puisse se connecter localement à
mysqld
. La commande
mysql
sera alors :

mysql -u toto -p


Bonne chance
0