Cela devrait être très simple, mais je ne peux pas le faire fonctionner pour la vie de moi.
J'essaie simplement de me connecter à distance à mon serveur MySQL.
connexion en tant que
mysql -u root -h localhost -p
fonctionne bien, mais en essayant
mysql -u root -h 'any ip address here' -p
échoue avec l'erreur
ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
Dans le mysql.user
tableau, il existe exactement la même entrée pour l'utilisateur 'root' avec l'hôte 'localhost' qu'un autre avec l'hôte '%'.
Je suis à bout de souffle et je n'ai aucune idée de comment procéder. Toutes les idées sont les bienvenues.
mysql
mysql-error-1130
concept47
la source
la source
Réponses:
Peut-être une précaution de sécurité. Vous pouvez essayer d'ajouter un nouveau compte administrateur:
Bien que Pascal et d'autres l'ont noté, ce n'est pas une bonne idée d'avoir un utilisateur avec ce type d'accès ouvert à n'importe quelle IP. Si vous avez besoin d'un utilisateur administratif, utilisez root et laissez-le sur localhost. Pour toute autre action, spécifiez exactement les privilèges dont vous avez besoin et limitez l'accessibilité de l'utilisateur comme Pascal l'a suggéré ci-dessous.
Éditer:
De la FAQ MySQL:
la source
Il faut créer un
new MySQL User
et attribuer les privilèges comme ci-dessous dansQuery prompt
via phpMyAdmin ou invite de commande:Une fois terminé avec les quatre requêtes, il doit se connecter avec
username / password
la source
@localhost
aurait du sens si les privilèges étaient différents d'une manière ou d'une autre, mais ici, ils sont les mêmes et cela va probablement être plus déroutant qu'autre chose (comme changer un mot de passe sur l'un sans se rendre compte que l'autre existe et que votre connexion pourrait frapper celui-là ).Mon message d'erreur était similaire et disait: «L' hôte XXX n'est pas autorisé à se connecter à ce serveur MySQL » même si j'utilisais root. Voici comment vous assurer que root dispose des autorisations appropriées.
Ma configuration :
Solution
Vérifier:
Accédez maintenant à la base de données MySQL sur votre serveur réel (par exemple, votre adresse distante est 123.123.123.123 au port 3306 en tant qu'utilisateur 'root' et je souhaite modifier les autorisations sur la base de données 'dataentry'. N'oubliez pas de modifier l'adresse IP, le port et le nom de la base de données à vos paramètres)
sudo service mysqld restart
la source
use dataentry
ligne (car la plupart des gens n'auront pas créé cette base de données).mysql
service à la finFLUSH PRIVILEGES
devrait vous permettre de ne pas avoir besoin de redémarrer.Vous devez accorder l'accès à l'utilisateur à partir de n'importe quel nom d'hôte.
Voilà comment vous ajoutez de nouveaux privilèges de phpmyadmin
Goto Privileges> Ajouter un nouvel utilisateur
Sélectionnez N'importe quel hôte pour le nom d'utilisateur souhaité
la source
Effectuez simplement les étapes suivantes:
1a) Connectez-vous à mysql (via localhost)
1b) Si le serveur myslq s'exécute dans Kubernetes (K8s) et est accessible via un NodePort
2) Créer un utilisateur
3) Accorder des autorisations
4) Privilèges de vidage
la source
Le message
*Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
est une réponse du serveur MySQL au client MySQL. Remarquez comment il renvoie l'adresse IP et non le nom d'hôte.Si vous essayez de vous connecter avec
mysql -h<hostname> -u<somebody> -p
et qu'il renvoie ce message avec l'adresse IP, le serveur MySQL n'est pas en mesure d'effectuer une recherche inversée sur le client. Ceci est essentiel car c'est la façon dont il mappe le client MySQL aux subventions.Assurez-vous que vous pouvez faire un
nslookup <mysqlclient>
FROM depuis le serveur MySQL. Si cela ne fonctionne pas, il n'y a pas d'entrée dans le serveur DNS. Alternativement, vous pouvez mettre une entrée dans le fichier HOSTS du serveur MySQL (<ipaddress> <fullyqualifiedhostname> <hostname>
<- L'ordre ici peut avoir de l'importance).Une entrée dans le fichier hôte de mon serveur permettant une recherche inversée du client MySQL a résolu ce problème.
la source
Manière simple:
puis
terminé!
la source
WHERE CustomerName LIKE 'a%'
- Recherche toutes les valeurs qui commencent par "a"Si vous modifiez les tables de droits manuellement (à l'aide de INSERT, UPDATE, etc.), vous devez exécuter une
FLUSH PRIVILEGES
instruction pour indiquer au serveur de recharger les tables de droits.PS: Je ne recommanderais pas à n'importe quel hôte de se connecter pour n'importe quel utilisateur (surtout pas l'
root
utilisation). Si vous utilisez mysql pour une application client / serveur, préférez une adresse de sous-réseau. Si vous utilisez mysql avec un serveur Web ou un serveur d'applications, utilisez des adresses IP spécifiques.la source
Utilisez simplement l'interface fournie par l'outil GUI de MySql (SQLyog):
Cliquez sur Gestionnaire d'utilisateurs:
Maintenant, si vous souhaitez accorder l'accès POUR TOUT AUTRE PC À DISTANCE, assurez-vous simplement que, comme dans l'image ci-dessous, la valeur du champ Hôte est% (qui est le caractère générique)
la source
La plupart des réponses ici vous montrent la création d'utilisateurs avec deux valeurs d'hôte: une pour
localhost
et une pour%
.Veuillez noter qu'à l'exception d'un utilisateur localhost intégré comme root, vous n'avez pas besoin de le faire. Si vous souhaitez simplement créer un nouvel utilisateur pouvant se connecter depuis n'importe où, vous pouvez utiliser
et cela fonctionnera très bien. (Comme d'autres l'ont mentionné, c'est une terrible idée d'accorder des privilèges administratifs à un utilisateur de n'importe quel domaine.)
la source
le moyen le plus simple est de se connecter à phpmyadmin avec un compte root, il y a une base de données mysql et une table utilisateur, il édite le compte root et dans le champ hôte ajoute% wild card. puis à travers les privilèges de vidage ssh
la source
S'il s'agit d'une installation récente de mysql, avant de changer quoi que ce soit d'autre, essayez simplement d'exécuter cette commande, puis réessayez:
Cela résout à lui seul le problème pour moi sur Ubuntu 16.04, mysql 5.7.20. YMMV.
la source
Trouvez simplement une meilleure façon de le faire à partir de votre panneau de contrôle d'hébergement (j'utilise DirectAdmin ici)
allez simplement dans la base de données du serveur cible dans votre panneau de contrôle, dans mon cas: gestion MySQL -> sélectionnez votre base de données -> vous trouverez: "Hôtes d'accès", ajoutez simplement votre hôte distant ici et son fonctionnement maintenant!
Je suppose qu'il existe une option similaire sur d'autres panneaux C. comme plesk, etc.
J'espère que cela vous a également été utile.
la source
Eh bien, rien de la réponse ci-dessus n'a fonctionné pour moi. Après beaucoup de recherches, j'ai trouvé une solution. Bien que je puisse être en retard, cela peut aider les autres à l'avenir.
Connectez-vous à votre serveur SQL depuis un terminal
Cela devrait résoudre le problème d'autorisation.
Bon codage !!
la source
Eh bien, ce que vous pouvez faire est simplement d'ouvrir le fichier mysql.cfg et vous devez changer l'adresse de liaison en ceci
bind-address = 127.0.0.1
puis redémarrez mysql et vous pourrez connecter ce serveur à cela.
Regardez cela, vous pouvez avoir une idée de cela.
c'est du vrai sol
la source
Si vous exécutez sur Windows; Une solution simple consiste à exécuter l'assistant de configuration d'instance de serveur MySQL. Il se trouve dans votre groupe MYSQL dans le menu Démarrer. Sur l'avant-dernier écran, cliquez sur la case qui dit "autoriser l'accès root à partir de machines distantes".
la source
Si vous avez WAMP Server + Windows 10 et que vous l'utilisez pour le développement, cliquez avec le bouton droit sur l'icône Wamp =>
Wamp Settings
=>Check Allow Virtual Hosts other than 127*
la source
J'étais également confronté au même problème. Je l'ai résolu en 2 min pour moi, je viens de liste blanche ip via cpanel
Supposons que vous essayez de connecter la base de données du serveur B à partir du serveur A. Allez dans Serveur B Cpanel-> Remote MySQL-> entrez l'adresse IP du serveur A et c'est tout.
la source
Cette réponse pourrait aider quelqu'un ...
Toutes ces réponses n'ont pas aidé, alors j'ai réalisé que j'avais oublié de vérifier une chose cruciale .. Le port :)
J'ai mysql fonctionnant dans un conteneur de docker fonctionnant sur un port différent. Je pointais vers ma machine hôte sur le port 3306, sur lequel j'ai un serveur mysql. Mon conteneur expose le serveur sur le port 33060. Donc, pendant tout ce temps, je regardais le mauvais serveur! doh!
la source
cette erreur car aucun mot de passe à la racine, et cela s'est peut-être produit avec vous lorsque vous essayez de vous connecter de l'extérieur.
la source
Solution CPANEL
Allez dans Cpanel, recherchez Remote MySQL. Ajoutez l'IP dans le champ de saisie:
Hôte (le caractère générique% est autorisé)
Commentez pour vous souvenir de ce qu'est l'IP. C'était tout pour moi.
la source
Cela fonctionne pour toute future connexion mysql à distance!
Accédez à la ligne qui commence par la directive bind-address. Ça devrait ressembler à ça:
Connectez-vous à votre mysql en tant que terminal racine
enfin Accordez à cette machine l'autorisation exclusive de se connecter à la base de données à distance avec la commande suivante.
la source
Au cas où quelqu'un confronté à ce problème le rencontrerait depuis SQLyog, cela s'est produit:
Je m'étais connecté à la base de données distante (depuis SQLyog) et j'ai travaillé pendant quelques heures. Ensuite, j'ai quitté le système pendant quelques minutes, puis je suis revenu pour continuer mon travail - ERREUR 1130 ! Rien de ce que j'ai essayé n'a fonctionné; Le redémarrage de SQLyog ne l'a pas corrigé. Ensuite, j'ai redémarré le système - cela ne fonctionnait toujours pas.
J'ai donc essayé de me connecter depuis le terminal - cela a fonctionné. Puis réessayé sur SQLyog ... et cela a fonctionné. Je ne peux pas l'expliquer autre que «bizarrerie informatique aléatoire», mais je pense que cela pourrait aider quelqu'un.
la source
si vous essayez d'exécuter la requête mysql sans définir la chaîne de connexion, vous obtiendrez cette erreur.
Vous avez probablement oublié de définir la chaîne de connexion avant l'exécution. avez-vous vérifié cela? (Désolé pour mon mauvais anglais)
la source
Problème: root @ localhost ne parvient pas à se connecter à une nouvelle installation de mysql-community-server sur openSUSE 42.2-1.150.x86_64. Mysql refuse les connexions - point final.
Solution:
Le fichier user.MYD a une taille 0 (vraiment?!). J'ai copié les 3 fichiers d'un autre système de travail.
J'ai pu me connecter. Ensuite, il s'agissait simplement de réappliquer tous les privilèges de schéma. De plus, si vous avez désactivé IPv6, réactivez-le temporairement afin que le compte root @ :: 1 puisse également fonctionner.
la source
Cela fonctionne pour DirectAdmin ;
DirectAdmin
.MySQL Management
.database
.Accesse Host
onglet, il y a un champ. Vous devez remplir ce champ parxxx.xx.xxx.xx
.Add Host
.Fini. Vous pouvez maintenant accéder à cette base de données par votre
your_database_username
&your_database_password
.Si simple!
la source
Toutes les réponses ici n'ont pas fonctionné dans mon cas, donc je suis invité à aider d'autres utilisateurs à l'avenir. Cela peut également être un problème dans notre code, pas seulement dans MySQL seul.
Si vous utilisez
VB.NET
Au lieu de ce code:
Vous devez vous déplacer
MysqlConn = New MySqlConnection()
sur la première ligne. Ce serait donc comme çala source