Connexion en SSH au serveur hebergeant mysql

zenxb -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
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 !

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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