2017-10-20 21 views
0

Bonjour tout ce que je suis en train d'utiliser une commande -Comment utiliser les commandes de base de données de coupe avec mot de passe

rake db:migrate 

mais je reçois cela comme commentaires dans le terminal -

rake aborted! 
Mysql2::Error: Access denied for user 'root'@'localhost' (using password: NO) 

Je suis à la recherche d'avoir quelque chose à demander le mot de passe lors de l'utilisation de la commande, comme

rake db:migrate -p 

mais cela ne fonctionne pas pour moi, je l'ai essayé différentes choses lik e le mettre avant râteau, juste après râteau et en utilisant -u et root avec lui.

Ma question est comment est-ce que je fais cette invite aussi pour le mot de passe quand il essaye d'accéder à la base de données, ainsi il ne me donne pas une erreur comme ceci?

+0

question rapide, dans quel environnement êtes-vous? dev? ou production? – Sean

+0

probablement dev, im nouveau à ce donc je ne suis pas trop sûr – Ahurasim

Répondre

0

Je regarde votre fichier config/database.yml pour vous assurer que votre nom d'utilisateur et votre mot de passe DB sont correctement définis.

Edit:

J'ai aussi trouvé un lien utile qui aide à ne pas stocker votre mot de passe dans le fichier database.yml sous forme de texte, vous stockez comme une variable ENV qui peut alors être défini avant d'accéder à la base de données à l'aide du terminal.

instructions sont ici:

Securely providing the database password in a Rails app

+0

Mais je ne cherche pas à laisser un mot de passe en texte brut dans ce fichier d'identification besoin crypter en quelque sorte – Ahurasim

+0

Jetez un coup d'oeil [ici] (https://stackoverflow.com/ a/7306399/5786216) à cette réponse à database.yml Je ne suis pas sûr que ce que vous demandez est possible. Rails utilisera le fichier database.yml pour se connecter à votre base de données sur vos différents environnements; il ne devrait pas être commis. –

+1

@MarioNovello est correct, utilisez '<% = ENV ['YOUR_VAR_HERE']%>' et placez-le dans le serveur et ne le commettez pas. En dev, utilisez simplement vos informations d'identification. – Sean

0

Aller à app/config/database.yml Ce fichier est responsable de la configuration de la connexion des bases de données pour divers environnement. ex. développement, production, etc.

ex.

development:  

adapter: mysql2 

encoding: utf8 

database:  #database name. 

username:  # mysql user name 

password:  # mysql Password 

host :  # from where databases you asses from local or remote 

        remote you specify the remote server ip address. 

Vous devez définir un mot de passe correctement.