130 votes

Comment accorder des autorisations d'accès à distance au serveur mysql pour l'utilisateur?

Si je fais SHOW GRANTS dans ma base de données mysql, je reçois

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD 'some_characters' WITH GRANT OPTION
 

Si je ne me trompe pas, root@localhost signifie que l'utilisateur root ne peut accéder au serveur que de localhost . Puis-je dire à mysql d'accorder à root permission d'accéder à ce serveur mysql à partir de tous les autres ordinateurs (du même réseau)?

148voto

Michael Berkowski Points 137903

Cela accorde un accès root avec le même mot de passe depuis n'importe quelle machine dans *.example.com :

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%.example.com' 
    IDENTIFIED BY 'some_characters' 
    WITH GRANT OPTION;
FLUSH PRIVILEGES;
 

Si la résolution de noms ne fonctionne pas, vous pouvez également accorder un accès par IP ou par sous-réseau:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%'
    IDENTIFIED BY 'some_characters'  
    WITH GRANT OPTION;
FLUSH PRIVILEGES;
 

MySQL GRANT documents de syntaxe.

98voto

moshe beeri Points 408

Essayer:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Pa55w0rd' WITH GRANT OPTION;

8voto

user171212 Points 41

Les subventions SQL que les autres partagent ne fonctionnent pas. Si vous ne parvenez toujours pas à accéder à la base de données, il est possible que vous n'ayez qu'une restriction de pare-feu pour le port. Cela dépend de votre type de serveur (et des routeurs entre ceux-ci) pour savoir comment ouvrir la connexion. Ouvrez le port TCP 3306 entrant et donnez-lui une règle d'accès similaire pour les machines externes (all / subnet / single IP / etc.).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X