Hello les gens,

vous pouvez me dire pourquoi et surtout comment résoudre cette erreur.

CREATE USER 'amstramgram'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON gramdata.* TO amstramgram@'%' IDENTIFIED BY 'password;
GRANT ALL PRIVILEGES ON gramdata.* TO amstramgram@localhost IDENTIFIED BY 'password';
pi@raspberrypi /home/amstramgram/www $ rake db:migrate
rake aborted!
Mysql2::Error: Access denied for user 'root'@'localhost' (using password: NO)
/usr/local/rvm/gems/ruby-2.2.1/gems/mysql2-0.3.19/lib/mysql2/client.rb:70:in `connect'
/usr/local/rvm/gems/ruby-2.2.1/gems/mysql2-0.3.19/lib/mysql2/client.rb:70:in `initialize'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/mysql2_adapter.rb:18:in `new'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/mysql2_adapter.rb:18:in `mysql2_connection'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:438:in `new_connection'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:448:in `checkout_new_connection'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in `acquire_connection'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:349:in `block in checkout'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:348:in `checkout'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:263:in `block in connection'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:262:in `connection'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:571:in `retrieve_connection'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_handling.rb:113:in `retrieve_connection'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_handling.rb:87:in `connection'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/migration.rb:913:in `initialize'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/migration.rb:820:in `new'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/migration.rb:820:in `up'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/migration.rb:798:in `migrate'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:137:in `migrate'
/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
# MySQL.
default: &default
 adapter: mysql2
 encoding: utf8
 pool: 5
 host: localhost

development:
 <<: *default
 database: gramdata_dev

test:
 <<: *default
 database: gramdata_test

production:
 <<: *default
 database: gramdata
 username: amstramgram
 password: ****
#<%= ENV["DATABASE_PASSWORD"] %>

Merci des bisous.

13 réponses


Bahamut45
Réponse acceptée

Salut,

Je veux pas dire mais ubuntu et debian sont tres proches mais les depots ne fonctionnent pas exactement pareil.

Pour installer passenger sur debian, je te conseil de suivre ce tuto https://www.linode.com/docs/websites/ror/ruby-on-rails-with-nginx-on-debian-7-wheezy

Cordialement

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

Mmmh jpense que les logins ne sont pas bon ^^

Mais si je te dis que je suis sur que les logins sont bons. Tu as une autre idée d'ou ca pourrais provenir ?

Je peux expliquer la procédure que j'ai réalisé plus en détails si ca peux aider.

-1. L'installation est réalisée sur un raspberry pi;
-2. Je me suis connecté avec l'utilisateur par defaut puis je suis passé en sudo su;
-3. Avec l'utilisateur root j'ai installé rvm, ruby, rails, mysql et créé la base de données;
-4. J'ai créé un utilisateur mysql, j'ai donné les droits sur la base et sur les tables;
-5. Je me suis déco de l'utilisateur root et de l'utilisateur par défault;
-6. Je me suis reco avec un utilisateur qui est dans le sudoers files;
-6. J'ai vérifié que rvm -v, ruby -v, rails -v fonctionne;
-7. J'ai créé un projet RoR, et bundle install;
-8. J'ai complété le fichier dans config/database.yml;
-9. Un petit rake db:migrate et j'ai l'erreur du dessus;

Est ce que tu pense que ca pourrais venir de l'installation ou bien du host: localhost que n'est pas juste ? Si tu as un exemple du fichier database.yml configuré en mysql, je suis preneur ;)

Essaie de mettre 127.0.0.1 par curiosité ^^

hello,
Je pense que ton rake db:migrate se lance par défaut en dev du cou il doit essayer de se co avec tes infos de config de dev, hors si je regarde ton fichier de config tu n'as pas défini le login et le password pour la dev.

si tu veux qu'il le lance en prod essayes rake db:migrate RAILS_ENV=production

J'ai mis RAILS_ENV=production et maintenant j'ai :

Mysql2::Error: Access denied for user 'amstramgram'@'localhost' (using password: YES)

Perso j'utilise le fichier de config classique de rails sans avoir à spécifier le host .
Essayes aussi mysql -u amstramgram -p ton-mdp pour voir si ya un problème sur le login mysql .

# MySQL.  Versions 5.0+ are recommended.
#
# Install the MYSQL driver
#   gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
#   gem 'mysql2'
#
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
#
default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: rdev
  socket: /tmp/mysql.sock

development:
  <<: *default
  database: mon-test_development

# 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:
  <<: *default
  database: mon-test_test

# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
#   DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
#   production:
#     url: <%= ENV['DATABASE_URL'] %>
#
production:
  <<: *default
  database: mon-test_production
  username: mon-test
  password: <%= ENV['MON-TEST_DATABASE_PASSWORD'] %>

Merci pour le fichier d'exemple, je ne sais pas si c'est ca mais il me manquait le socket :)

Raaaaah pourquoi il y a toujours des erreurs, hein pourquoi? Et dire que j'ai la doc de phusionpassenger.com et le tuto de grafikart ouvert et j'ai quand même une erreurs. Une idée (encore) ?

apt-get install nginx-extras passenger
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package passenger

Hello,
Alors là il peut y avoir plusieurs raisons et vu que je déteste passenger je ne pourrai pas trop t'aider, mais tu peux toujours essayer de faire ça :

sudo apt-add-repository ppa:brightbox/passenger-nginx
sudo apt-get update
sudo apt-get upgrade

Amilti si tu n'utilise pas passenger tu gère comment la partie rails ? thin / puma ?

Hello Graf,
J'utilise le couple nginx + puma bien moins prise de tête après la principale raison c'est que j'ai toujours trouvé la doc de phusion passenger mal faite, je crois qu'ils l'ont mise à jour donc à voir ^^.

Ce que je ne comprends pas trop c'est ces deux W. Vous avez une explication ?

W: Failed to fetch http://ppa.launchpad.net/brightbox/passenger-nginx/ubuntu/dists/wheezy/main/source/Sources  404  Not Found
W: Failed to fetch http://ppa.launchpad.net/brightbox/passenger-nginx/ubuntu/dists/wheezy/main/binary-armhf/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

J'ai ça quand je fais un apt-get update

Merci c'est ce que j'ai trouvé dans la doc de passenger cette aprem' , en passant par RVM.