web-dev-qa-db-fra.com

Comment puis-je me connecter à MySQL dans Ruby on Rails?

Je suis vraiment nouveau en Ruby on Rails. J'ai lu ce tutoriel et cela semble vraiment facile.

Mais comment puis-je me connecter à ma base de données (MySQL) ou à quoi sert Rails? En php, j'utiliserais ...

mysql_connect("...","...","...");
mysql_select_db("...");

J'ai cherché sur Google et je ne trouve aucun conseil utile.

13
jesper

Vous n'avez pas à faire ces choses manuellement, vérifiez ceci: http://guides.rubyonrails.org/configuring.html#configuring-a-database

14
Stobbej

Jetez un œil au fichier de configuration config/database.yml

Vous devez y installer votre configuration. Voici un exemple pour l'environnement de production:

production: 
   adapter: mysql2
   encoding: utf8 
   database: example 
   pool: 10 
   username: example 
   password: secure 
   socket: /var/run/mysqld/mysqld.sock 
   reconnect: true

En plus de cela, vous devez ajouter gem 'mysql2' dans votre Gemfile et exécutez bundle install.

24
wintermeyer

Contenu de mon config/database.yml fichier:

# Ensure the MySQL gem is defined in your Gemfile
#   gem 'mysql2'
#
# Install MySql gem if not already there.
# Below command installs some pre-requisites for the installation:
#   Sudo apt-get install libmysqlclient-dev mysql-client
# After above, this to finish gem installation:
#   gem install mysql2
#
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: YOUR_DATABASE_HERE
  pool: 5
  username: root
  password: root

Comme le disent les commentaires ci-dessus les configurations, vous devrez peut-être d'abord installer la gemme mysql2 via le terminal. Une fois l'installation terminée, effectuez une bundle install et rake db:migrate et peut également accéder à la base de données via phpmyadmin.

Je venais de tomber sur cette question il y a une heure, plus de 2 ans plus tard depuis que la question avait été posée. Bien que je comprenne que cela est très tard et que OP a certainement dû résoudre ce problème, pour le bien d'autres utilisateurs débutants comme moi qui pourraient venir ici pour une solution, j'ai pensé écrire ma solution ici. J'espère que cela aide.

6
harkirat1892