Msql avec un host distant
Résolu/Fermé
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
-
23 nov. 2007 à 00:21
samy larson - 28 févr. 2010 à 12:19
samy larson - 28 févr. 2010 à 12:19
11 réponses
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
10 déc. 2007 à 13:18
10 déc. 2007 à 13:18
Ca y est, j'ai reussi !
Voila le resume de la reponse :
1) Tout d'abord, pour utiliser mysql sur une machine distante, il faut avoir mysql installe sur la machine cliente
2) Les versions de mysql du client et du serveur doivent etre compatibles (assez proche l'une de l'autre en terme de version)
3) cote server, ouvrir le fichier /etc/mysql/my.cmf
et remplacer la ligne
6) cote client, il suffit de lancer la commande :
note : j'ai choisi de creer cote serveur un utilisateur avec peu de droits et sans host afin d'autoriser la connection de n'importe quel ordinateur. on aurait pu lui attribuer plus de droit mais securiser le tout en n'autorisant la connexion que depuis un poste precis :
Voila le resume de la reponse :
1) Tout d'abord, pour utiliser mysql sur une machine distante, il faut avoir mysql installe sur la machine cliente
2) Les versions de mysql du client et du serveur doivent etre compatibles (assez proche l'une de l'autre en terme de version)
3) cote server, ouvrir le fichier /etc/mysql/my.cmf
et remplacer la ligne
bind-address = 127.0.0.1par
# bind-address = 127.0.0.14) cote serveur, creer un utilisateur mysql avec des droits limites a une base
mysql> GRANT CREATE TEMPORARY TABLES, SELECT, INSERT, UPDATE, DELETE ON db_name.* TO user_name IDENTIFIED BY 'password';5) si le serveur est derriere un routeur, il faut creer une translation d'adresse sur le port 3306
6) cote client, il suffit de lancer la commande :
$ mysql -h server_address -u username -ppassword
note : j'ai choisi de creer cote serveur un utilisateur avec peu de droits et sans host afin d'autoriser la connection de n'importe quel ordinateur. on aurait pu lui attribuer plus de droit mais securiser le tout en n'autorisant la connexion que depuis un poste precis :
mysql> GRANT ALL ON db_name.* TO user_name@client_address IDENTIFIED BY 'password';
NaGa
Messages postés
50
Date d'inscription
vendredi 24 août 2007
Statut
Membre
Dernière intervention
26 novembre 2007
7
23 nov. 2007 à 00:27
23 nov. 2007 à 00:27
/etc/mysql/my.cnf
commenter ligne bind-address
commenter ligne bind-address
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
23 nov. 2007 à 00:32
23 nov. 2007 à 00:32
ouhlala !
alors d'abord merci bcp.
ensuite j'ai oublie de preciser que je debute completement en linux et mysql.
j'ai installe mon serveur ubuntu a partir d'un cd, je n'ai effectue aucunes modif.
qu'est ce que le fichier my.cnf ?
que dois je ecrire dans bind-address ?
ou puis-je trouver de la doc ?
merci bcp
santiago
alors d'abord merci bcp.
ensuite j'ai oublie de preciser que je debute completement en linux et mysql.
j'ai installe mon serveur ubuntu a partir d'un cd, je n'ai effectue aucunes modif.
qu'est ce que le fichier my.cnf ?
que dois je ecrire dans bind-address ?
ou puis-je trouver de la doc ?
merci bcp
santiago
NaGa
Messages postés
50
Date d'inscription
vendredi 24 août 2007
Statut
Membre
Dernière intervention
26 novembre 2007
7
23 nov. 2007 à 00:36
23 nov. 2007 à 00:36
dans la console, tu tapes vim /etc/mysql/my.cnf
ca va s'ouvrir ...
tu descends jusqu'a une ligne qui ressemble a
bind-address : localhost ou bind-address : 127.0.0.1 (je sais plus de tête)
tu te mets au début de la ligne, tu enfonces la touche I, tu tapes #, tu enfonces la touche Echap (Esc), tu tapes :w [enter] ensuite :q [enter] tu tapes (dans la console) shutdown -r now
tu attends patiemment que ton bébé redémarre, et tu fais un essai
ca va s'ouvrir ...
tu descends jusqu'a une ligne qui ressemble a
bind-address : localhost ou bind-address : 127.0.0.1 (je sais plus de tête)
tu te mets au début de la ligne, tu enfonces la touche I, tu tapes #, tu enfonces la touche Echap (Esc), tu tapes :w [enter] ensuite :q [enter] tu tapes (dans la console) shutdown -r now
tu attends patiemment que ton bébé redémarre, et tu fais un essai
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
23 nov. 2007 à 00:51
23 nov. 2007 à 00:51
on avance !
j'ai utilise nano au lieu de vim (auquel je ne comprend rien) et il a fallu que j'ajoute sudo devant mes commandes (je n'ai pas le droit de me logger en root).
j'ai redemarre la machine et voila le nouveau message d'erreur :
192.168.1.52 c'est ma machine cliente (celle qui execute le script php)
docteur ? un diagnostic ?
merci bcp pour tes conseils, paralellement, je google les msg d'erreur.
santiago
j'ai utilise nano au lieu de vim (auquel je ne comprend rien) et il a fallu que j'ajoute sudo devant mes commandes (je n'ai pas le droit de me logger en root).
j'ai redemarre la machine et voila le nouveau message d'erreur :
Host '192.168.1.52' is not allowed to connect to this MySQL server
192.168.1.52 c'est ma machine cliente (celle qui execute le script php)
docteur ? un diagnostic ?
merci bcp pour tes conseils, paralellement, je google les msg d'erreur.
santiago
NaGa
Messages postés
50
Date d'inscription
vendredi 24 août 2007
Statut
Membre
Dernière intervention
26 novembre 2007
7
23 nov. 2007 à 01:04
23 nov. 2007 à 01:04
ajoute ton client dans le fichier hosts
NaGa
Messages postés
50
Date d'inscription
vendredi 24 août 2007
Statut
Membre
Dernière intervention
26 novembre 2007
7
23 nov. 2007 à 01:08
23 nov. 2007 à 01:08
Host ... is not allowed to connect to this MySQL server
Vous pouvez corriger ce problème en configurant un compte avec la combinaison hôte / nom d'utilisateur que vous utilisez lors de la connexion.
Si vous ne connaissez ni l'IP ni le nom d'hôte à partir duquel vous essayez de vous connecter, vous devez créer une entrée avec '%' dans la colonne Host dans la table user et redémarrer mysqld avec l'option --log sur la machine serveur. Après avoir essayé à nouveau de vous connecter à partir de la machine cliente, les informations contenues dans le log de MySQL vous apprendront comment vous vous êtes vraiment connectés. (Remplacez alors l'entrée de la table user contenant '%' avec le nom d'hôte qui apparaît dans le log. Sinon, vous aurez un système non-sécurisé.)
Une autre raison pour cette erreur sous Linux est que vous utilisez une version binaire de MySQL qui est compilée avec une version de glibc différente de celle que vous utilisez. Dans ce cas, vous devez soit mettre à jour votre système d'exploitation et sa bibliothèque glibc , soit télécharger les sources de MySQL et les compiler vous-même. Un RPM de sources est normalement facile à compiler et installer, cela ne devrait donc pas vous poser de gros problèmes.
Vous pouvez corriger ce problème en configurant un compte avec la combinaison hôte / nom d'utilisateur que vous utilisez lors de la connexion.
Si vous ne connaissez ni l'IP ni le nom d'hôte à partir duquel vous essayez de vous connecter, vous devez créer une entrée avec '%' dans la colonne Host dans la table user et redémarrer mysqld avec l'option --log sur la machine serveur. Après avoir essayé à nouveau de vous connecter à partir de la machine cliente, les informations contenues dans le log de MySQL vous apprendront comment vous vous êtes vraiment connectés. (Remplacez alors l'entrée de la table user contenant '%' avec le nom d'hôte qui apparaît dans le log. Sinon, vous aurez un système non-sécurisé.)
Une autre raison pour cette erreur sous Linux est que vous utilisez une version binaire de MySQL qui est compilée avec une version de glibc différente de celle que vous utilisez. Dans ce cas, vous devez soit mettre à jour votre système d'exploitation et sa bibliothèque glibc , soit télécharger les sources de MySQL et les compiler vous-même. Un RPM de sources est normalement facile à compiler et installer, cela ne devrait donc pas vous poser de gros problèmes.
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
23 nov. 2007 à 01:22
23 nov. 2007 à 01:22
Argggll ! ca n'en fini jamais !
pourtant je n'ai defini aucun protocole d'authentification. Y a til un REQUIRE par defaut ?
je vais essayer de forcer avec :
GRANT CREATE, SELECT, INSERT, UPDATE, DELETE ON isoworld.*
TO client@192.168.1.52 IDENTIFIED BY 'client' REQUIRE NONE;
bon ca y est j'ai essaye... ca marche pas... message identique =o(
Client does not support authentication protocol requested by server; consider upgrading MySQL client
pourtant je n'ai defini aucun protocole d'authentification. Y a til un REQUIRE par defaut ?
je vais essayer de forcer avec :
GRANT CREATE, SELECT, INSERT, UPDATE, DELETE ON isoworld.*
TO client@192.168.1.52 IDENTIFIED BY 'client' REQUIRE NONE;
bon ca y est j'ai essaye... ca marche pas... message identique =o(
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
23 nov. 2007 à 01:56
23 nov. 2007 à 01:56
Je viens de checker les versions :
- le serveur ubuntu qui heberge la base est en mysql 5.0.45
- le client qui execute php (easyphp sous windows) est en mysql 4.3.10
dans la configuration finale, toutes les machines seront installes a l'identique donc le probleme ne devrais pas se poser.
pour l'instant je vais essayer de faire des tests avec une autre machine sous linux... enfin il va surtout d'abord falloir que je trouve une autre machine a installer sous linux
merci beaucoup NaGa pour ton aide.
a bientot
santiago
- le serveur ubuntu qui heberge la base est en mysql 5.0.45
- le client qui execute php (easyphp sous windows) est en mysql 4.3.10
dans la configuration finale, toutes les machines seront installes a l'identique donc le probleme ne devrais pas se poser.
pour l'instant je vais essayer de faire des tests avec une autre machine sous linux... enfin il va surtout d'abord falloir que je trouve une autre machine a installer sous linux
merci beaucoup NaGa pour ton aide.
a bientot
santiago
il faut exécuter les requêtes sql suivent pour donner l'accès à l'utilisateur root depuis l'extérieur de la machin serveur:
CREATE USER 'root'@'%' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'%' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'%' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'%' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;