Les autorisations MySQL sont basées sur l'adresse à laquelle ils se connectent ainsi que sur l'utilisateur. Donc [email protected] et [email protected] disposera de deux ensembles d'autorisations distincts. Changer localhost en 127.0.0.1 comme num8er mentionné fonctionnera probablement si votre code et la base de données sont sur le même serveur.
Si vous avez un accès terminal à la boîte où se trouve votre php, vous pouvez essayer de vous connecter directement en excluant tout ce qui a à voir avec php en utilisant ceci :
mysql -h 10.4.1.163 -u root -p[pass] database -e "SHOW TABLES"
Notez qu'il n'y a pas d'espace entre -p
et le mot de passe. En cas de succès, cela vous donnera une liste de tables dans database
.
Pour accorder l'accès à d'autres utilisateurs ou pour un autre nom d'hôte/IP, vous voudrez exécuter quelque chose comme ceci :(bien que vous devriez vraiment créer un utilisateur distinct avec des autorisations plus restreintes en fonction de vos besoins).
GRANT ALL PRIVILEGES ON `database`.* TO 'root'@'10.4.1.163';
Consultez la documentation sur le GRANT de MySQL ici - http://dev.mysql .com/doc/refman/5.7/en/grant.html
En passant - s'il vous plaît, s'il vous plaît, s'il vous plaît, ne pompez pas simplement d'anciennes données dans une requête sans au moins utiliser mysql_real_escape_string
(http://php.net/manual/en/ function.mysql-real-escape-string.php
) dessus au préalable. Vous pouvez également consulter PDO (http://php. net/manual/fr/book.pdo.php
) qui est généralement préféré au maintenant obsolète mysql_
fonctions