web-dev-qa-db-fra.com

Un utilisateur mysql de 2 hôtes non sur le même sous-réseau

J'ai googlé pour cela sans chance. J'ai une base de données principale avec un esclave. Les permanentes pour l'esclave sont définies et cela fonctionne bien. J'aimerais ajouter un autre esclave à l'aide d'un clone du serveur d'origine. Jusqu'à présent, tout va bien, sauf que mon utilisateur esclave est uniquement accordé à un accès d'un hôte: 10.10.10.10.10. Le deuxième esclave que j'aimerais apporter a l'adresse IP 10.10.10.20 et je ne peux pas autoriser l'accès à l'ensemble du sous-réseau (je ne peux pas non plus modifier les adresses IP internes).

Donc, je voudrais mettre à jour les hôtes Les esclaves peuvent accéder au maître aux adresses IP et peuvent sembler comprendre comment.

Toute aide est grandement appréciée.

4
brycemcd

Regarde le mysql:user Tableau Le user est probablement activé uniquement à partir d'un Host (par nom ou IP). Vous pouvez faire l'une des deux choses:

  • Ajoutez une deuxième occurrence de l'utilisateur avec accès à partir du deuxième hôte. (Le plus sécurisé.)
  • Changer les critères d'accueil pour être moins restrictif. (Moins sécurisé.)

Voir les Restrictions d'accès MySQL Documentation pour les spécifications d'hôte moins restrictives éventuelles.

4
BillThor

Normalement, MySQL renvoyer le nom d'hôte à la place de l'adresse IP.

Faire un nouvel utilisateur appelé "Chaminda" à mysql:user Utiliser le shell mysql:

CREATE USER 'chaminda'@'%' IDENTIFIED BY 'password';

La première chose à faire est de fournir à l'utilisateur l'autorisation nécessaire et de toutes les autorisations de l'utilisateur.

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'%';

Recharger tous les privilèges.

FLUSH PRIVILEGES;

Remarque : ici Nom d'hôte =% et cela signifie que vous pouvez accéder à ce serveur de base de données depuis n'importe quel hôte. Donner à tous les privilèges à l'utilisateur est un risque important et ce n'est pas une meilleure pratique. En outre, si vous créez déjà un utilisateur défini l'autorisation nécessaire

Si vous avez besoin de récupérer plus de détails, utilisez la commande suivante

select * from  mysql.user \G;

( résultat

          User: chaminda
          Password: *4E018IOIPOP89896GFYUIUI25B585CF9F
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
          Reload_priv: Y
        Shutdown_priv: Y
         Process_priv: Y
            File_priv: Y
           Grant_priv: Y
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
         Show_db_priv: Y
           Super_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
         Execute_priv: Y
      Repl_slave_priv: Y
     Repl_client_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: Y
     Create_user_priv: Y
           Event_priv: Y
         Trigger_priv: Y
             ssl_type:
           ssl_cipher:
          x509_issuer:
         x509_subject:
        max_questions: 0
          max_updates: 0
      max_connections: 0
 max_user_connections: 0

8 rows in set (0.00 sec)
1
Chaminda Bandara