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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top