Connexion à distance mysql
-
21-08-2019 - |
Question
J'été faire un site Web sur localhost et quand j'ai essayé de le déplacer sur l'hôte, il me montre beaucoup d'erreurs. On dirait qu'il ne peut pas se connecter à ma base de données locale. Voici le code:
$host = "myip";
$user = "root";
$pass = "";
$db = "mydatabase";
mysql_connect($host, $user, $pass);
mysql_select_db($db);
$on = mysql_fetch_row(mysql_query("SELECT COUNT(online) FROM characters WHERE online=1"));
echo "<br>Online: $on[0]<br><br>";
Et voici la sortie:
Warning: mysql_connect() [function.mysql-connect]: Host 'myip' is not allowed to connect to this MySQL server in * on line 46
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in * on line 48
Online:
Merci pour l'aide
La solution
Il est un problème mysql d'autorisation de l'utilisateur. Créer un nouvel utilisateur avec phpmyadmin par exemple et mettre hôte de à localhost si vous vous connectez depuis localhost ou% si vous connectez à l'extérieur.
Autres conseils
Comme Alekc correctement dit, il est un problème d'autorisation:
Vous pouvez le faire à l'invite MySQL:
grant all privileges on mydatabase.*
to youruser@'your_ip_address'
identified by 'your_password';
Suivi par:
flush privileges;
Et puis essayer de se reconnecter à nouveau. Gardez à l'esprit que:
your_ip_adress: (votre serveur web), il est pas adresse IP du serveur MySQL, mais l'adresse IP que vous connectez à partir votre_mot_de_passe: est celui que vous devez utiliser pour établir la connexion sur le côté PHP
Rappelez-vous aussi que, même si cette solution devrait fonctionner, ce n'est pas recommandé l'octroi tous les privilèges à un utilisateur qui sera utilisé par une application Web. Vous pouvez faire la même chose avec moins d'autorisations.
Vous pouvez faire tout cela avec une belle interface graphique. Je préfère la ligne de commande.