Ouverture de session

Commentaires récents

Syndication
Flux XML

Access denied

Access denied
Posté par RadikalRaditz le Lundi, 11 Février, 2008 - 11:54pm. Linux/Unix & MacOS X

Bonjour,

Je débute avec Rails, et j'avoue être d'entrée de jeu complètement perdu. Mais je suis sûr que des développeurs Rails sauront m'aider !
: )
J'ai passé 3 jours à chercher une solution sur le Net, sans succès.

Je fais tourner Rails sur Mac OS X (Leopard).
J'ai créé une base de données MySql 5.0.51 pour mes tests.

J'ai regardé divers tutoriaux sur le Net, et même le livre que j'ai acheté ne m'apporte pas de réponse satisfaisante. Tous les exemples que j'ai trouvé proposent d'utiliser le compte 'root' de MySQL pour faire tourner l'application.

Il est (de mon point de vue) hors de question de faire tourner une application avec un compte root et j'ai donc créé un utilisateur dédié pour mes premiers tests.
Voici la description de cet utilisateur donnée par MySQL (SELECT HOST, PASSWORD, USER FROM MYSQL.USER;):

+---------------------+-----------------------+----------+
| HOST | PASSWORD | USER |
+---------------------+-----------------------------------
| localhost | *D2845BA9C5EE87B8B4 | ROR_TEST |
+---------------------------------------------+----------+

Voici le contenu de mon fichier database.yml

# SQLite version 3.x
# gem install sqlite3-ruby (not necessary on OS X Leopard)
development:
adapter: mysql
database: ROR_TEST
user: ROR_TEST
password: ROR_TEST
host: localhost
timeout: 5000
socket: /tmp/mysql.sock

# Warning: The database defined as 'test' will be erased and
# re-generated from your development database when you run 'rake'.
# Do not set this db to the same as development or production.
test:
adapter: mysql
database: ROR_TEST
user: ROR_TEST
password: ROR_TEST
host: localhost
timeout: 5000
socket: /tmp/mysql.sock

production:
adapter: mysql
database: ROR_TEST
user: ROR_TEST
password: ROR_TEST
host: localhost
timeout: 5000
socket: /tmp/mysql.sock

Voici l'erreur que j'obtiens invariablement lorsque je tente d'accéder à une application rails (cf fin du message).
J'ai essayé plusieurs choses:
- lancer le server en précisant l'environnement: ruby script/server --environment=development
- ne pas préciser le socket

La grande question est quand même:
Pourquoi Rails essaie-t'il de se connecter en 'root' alors que nulle part je ne renseigne d'utilisateur 'root' ??? Il y a quelque chose dans le fonctionnement de Rails qui m'échappe. Moi je veux à tout prix me connecter avec mon utilisateur 'ROR_TEST' !


#28000Access denied for user 'root'@'localhost' (using password: YES)

Avez-vous une idée ?
D'avance merci

Adrien



[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | sujet précédent | sujet suivant | envoyer par email ]

Options d'affichage des commentaires
Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder" pour activer vos changements.

Sujet: 
Accès
Auteur: 
soli
Date: 
Mar, 12/02/2008 - 09:53

As tu bien autorisé ton user a utiliser ta base de données ? Le créé n'est pas suffisant, il faut lui donner des droits également.

Au pire développe ton appli avec sqlite3 pour tes tests

-----------------------
Ruby on Rails POWA !!
SoliSoft
-----------------------


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Access denied
Auteur: 
Harry Seldon
Date: 
Mar, 12/02/2008 - 01:38

Si tu débutes, commences par utiliser un compte root sans mot de passe sur ta bdd ! Ta bdd de dev/test ou tu mets ton appli toto ne craint pas grand chose !

Là tu vas mélanger des questions Rails et MySQL.
Si tu veux créer un compte sur ta bdd, ce n'est pas Rails qui va le faire (tu es déjà au courant). Essaie déjà de voir si tu arrives à te connecter à ta bdd via des commandes mysql.
Tu px aussi utiliser phpmyadmin pour tester le fonctionnement de ta bdd.

H


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Bonjour, Mon utilisateur
Auteur: 
RadikalRaditz
Date: 
Mar, 12/02/2008 - 10:51

Bonjour,

Mon utilisateur MySQL est bien autorisé sur ma base puisque je l'ai utilisé pour créer me tables de test. J'ai bien sûr fait des Insert/Delete/Update pour vérifier que tout va bien.
Donc le problème est un peu plus complexe que la simple autorisation basique. Ma base fonctionne bien le service tourne et je peux sans problème me connecter à celle-ci et m'amuser avec en ligne de commande.

Je pense qu'il y a autre chose qui entre en ligne de compte, mais je ne sais pas quoi.
Il faut peut être ne pas passer par un socket ? Peut-être faut-il préciser un port d'évoute de la base ?
Comment puis-je vérifier le port utilisé par ma base de données ?

Merci pour vos suggestions en tout cas.


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
J'ai pas d'autres idées que
Auteur: 
Harry Seldon
Date: 
Mar, 12/02/2008 - 21:24

J'ai pas d'autres idées que celle de créer un compte root sans mot de passe sur ta bdd, de configurer rails pour utiliser le compte root et de voir ce que dit Rails.

Peut être que Rails essaie d'accéder à une autre instance de MySQL (mais je ne vois pas pourquoi ni comment c'est possible).

H


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
J'arrive à faire
Auteur: 
RadikalRaditz
Date: 
Mar, 12/02/2008 - 22:38

J'arrive à faire "fonctionner" l'application en renseignant l'utilisateur 'root' dans mon fichier database.yml (je n'ai pas eu besoin de renseigner de mot de passe).

Cependant, j'ai une table PEOPLE, j'ai généré le squelette de l'applicaiton, puis j'ai lancé:
ruby script/generate scaffold person
Et quand j'accède à l'URL "http://localhost:3000/people/"

J'obtiens une page plutôt vide:

__________________________________________________
Listing people
Show Edit Destroy

New person
__________________________________________________

Une idée du pourquoi du comment de la chose ?
Cela m'aidera peut-être à comprendre mon problème de départ...

Merci pour votre aide !
Pour mes instance de MySql je n'en ai qu'une seule, donc je pense qu'il n'y a aucun risque que rails tente d'accéder à une autre instance que la mienne...


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Je pense avoir trouvé
Auteur: 
RadikalRaditz
Date: 
Mer, 13/02/2008 - 16:07

Je pense avoir trouvé l'ombre du début d'une piste.
J'utilise rails2.0 et cette version semble impliquer de nombreux changements.
Il faut que je vois dans ce qu'il y a de spécifique à cette version peut-être ?

Si vous avez des idées, je suis preneur !

Merci.


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Je crois que j'ai trouvé !
Auteur: 
RadikalRaditz
Date: 
Jeu, 14/02/2008 - 12:48

Ok ! Je crois que j'ai trouvé !
Avec Rails 20., pour générer le squelette de l'application, il faut taper

rails -d mysql

Car la base par défaut de rails2.0 n'est plus MySql mais sqlite3.
Le format du fichier database.yml généré diffère légèrement.
Je crois que dans rails2.0 le fichier attend
username:
au lieu de
user:

Du coup, je peux me connecter avec n'importe quel utilisateur qui existe dans la base de données !

J'ai toujours mon problème d'instrospection, mais c'est une autre histoire désormais !

Bonne continuation
Adrien


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Nouveaux liens

Sondage
Lorsque je développe avec Ruby on Rails c'est principalement sous:
Linux
36%
Mac OS X
30%
Windows
32%
(Free|Open|Net) BSD
1%
Autre...
1%
Nombre de votes: 368

Qui est en ligne
Il y a actuellement 1 utilisateur et 36 invités en ligne.

railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails
[ Hébergement et ressources techniques gracieusement fournis par la SSLL Nuxos Group ]