Mysql
 sql >> Base de données >  >> RDS >> Mysql

Se connecter à la base de données MySQL distante

Non, Charter ne pourrait rien y faire, car c'est une erreur qui arrive directement depuis le serveur MySQL , car votre adresse IP ne figure pas parmi les hôtes configurés pour l'accès.

Error: 1130 SQLSTATE: HY000 (ER_HOST_NOT_PRIVILEGED)
Message: Host '%s' is not allowed to connect to this MySQL server

La bonne solution implique de comprendre que le MySQL Access Privilege System traite le nom d'utilisateur + l'adresse IP de l'hôte ou le nom d'où provient la connexion comme un "compte" - et non le nom d'utilisateur en lui-même.

'foo'@'localhost'   # username foo connecting from the server machine
'foo'@'192.168.1.1' # username foo from IP address 192.168.1.1
'foo'@'192.168.1.%' # username foo from IP address 192.168.1.*
'foo'@'192.168.%'   # username foo from IP address 192.168.*.*
'foo'@'%'           # username foo from any IP address

Dans le système de privilèges de MySQL, il s'agit de 5 "utilisateurs" différents, potentiellement avec 5 mots de passe différents. Si aucun utilisateur n'est autorisé à se connecter à partir de votre adresse IP ou de toute adresse générique correspondant à la vôtre, ce serait le message que vous recevriez. Ceci est expliqué plus en détail, ici et ici .

Vous ne pouvez rien faire avec le mysql client de ligne de commande pour remplacer la configuration du serveur, bien que vous puissiez utiliser un tunnel SSH pour que le serveur pense que vous vous connectez depuis localhost ou un autre hébergeur de confiance, comme cela a été suggéré dans un commentaire.

Le correctif est que votre ami vous accorde des privilèges à votre adresse avec une GRANT déclaration . cPanel pourrait fournir une interface pour le faire - je n'en ai aucune idée, puisque je travaille directement avec MySQL - mais si c'est le cas, ce serait cPanel qui écrirait essentiellement le même GRANT et l'envoyer au serveur MySQL pour qu'il soit exécuté.