GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser MySQL avec l'application Ruby On Rails

Rubis sur rails utilise SQLite3 comme base de données par défaut. Bien que Sqlite fonctionne très bien avec Rails, il peut parfois ne pas être suffisant pour votre application Rails. Si vous voulez de l'évolutivité, de la simultanéité, de la centralisation et du contrôle, vous pouvez essayer des bases de données plus robustes comme MySQL ou PostgreSQL. Dans ce guide, nous verrons comment utiliser MySQL avec l'application Ruby on Rails dans Ubuntu Linux.

1. Installer MySQL dans Ubuntu

MySQL est disponible dans les dépôts par défaut de la plupart des distributions Linux et de type Unix.

Pour installer MySQL sur Debian, Ubuntu et ses dérivés, exécutez :

$ sudo apt install mysql-server mysql-client libmysqlclient-dev

Le libmysqlclient-dev package fournit les fichiers nécessaires pour compiler le mysql2 gemme. Ruby on Rails utilise mysql2 gem pour se connecter à MySQL lorsque vous configurez une application Rails.

1.1. Configurer le mot de passe racine MySQL

Ensuite, configurez le mot de passe de l'utilisateur root MySQL en exécutant la commande suivante :

$ sudo mysql_secure_installation

Saisissez "y" pour configurer le composant VALIDATE PASSWORD :

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

Choisissez le niveau de validation du mot de passe. Les validations de mot de passe disponibles sont faibles , moyen et fort . Ici, je choisis la validation du mot de passe de bas niveau en saisissant zéro (0).

There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0

Ensuite, entrez deux fois le mot de passe MySQL Root. Le mot de passe doit être fort et comporter au moins 8 caractères. Appuyez sur Y pour continuer :

Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

Ensuite, une série de questions vous sera posée. Tapez o et appuyez sur ENTER pour chaque question. Cela supprimera l'utilisateur anonyme, interdira la connexion à distance de l'utilisateur root et supprimera la base de données de test.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.

- Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

Fait! Nous avons défini le mot de passe de l'utilisateur root MySQL.

1.2. Installer le pilote MySQL

Installez le pilote MySQL nommé mysql2 gem qui permet à l'application Rails de se connecter à la base de données MySQL.

$ gem install mysql2

Terminé! Les applications Rails peuvent maintenant se connecter au serveur de base de données MySQL.

Allons de l'avant et créons une nouvelle application Rails avec la base de données MySQL.

2. Utiliser MySQL avec l'application Ruby on Rails

Pour créer une nouvelle application Rails appelée ostechnixapp et utilisez la base de données MySQL comme base de données par défaut, exécutez :

$ rails new ostechnixapp -d mysql

Cela créera une application Rails appelée ostechnixapp dans un répertoire nommé ostechnixapp et installez les dépendances gem qui sont déjà mentionnées dans Gemfile en utilisant l'bundle install .

Après avoir créé l'ostechnixapp application, basculez vers son répertoire :

$ cd ostechnixapp/

Modifiez le fichier de configuration de la base de données de l'application :

$ vi config/database.yml

Sous la section par défaut, remplacez MySQL root mot de passe utilisateur avec celui que vous avez créé précédemment :

[...]
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: Password123#@!
socket: /var/run/mysqld/mysqld.sock
[...]

Enregistrez et fermez le fichier.

Créez maintenant la nouvelle base de données pour votre application Rails à l'aide de la commande :

$ rake db:create

Cela créera deux bases de données avec le nom de votre application Rails. Par exemple, si le nom de l'application est ostechnixapp, alors il créera ostechnixapp_development et ostechnixapp_test .

Vous pouvez également vérifier si les bases de données sont créées avec succès à partir de MySQL.

Connectez-vous à MySQL en tant que root utilisateur :

$ mysql -u root -p

Vérifiez si les bases de données sont créées en saisissant la commande suivante :

mysql> show databases;

Exemple de résultat :

+--------------------------+
 | Database                 |
 +--------------------------+
 | information_schema       |
 | mysql                    |
 | ostechnixapp_development |
 | ostechnixapp_test        |
 | performance_schema       |
 | sys                      |
 +--------------------------+
 6 rows in set (0.01 sec)
 mysql> 

Quittez l'invite MySQL.

Démarrez maintenant votre serveur Web Rails à l'aide de la commande :

$ rails server -b 0.0.0.0

Cela démarrera votre application Rails sur le port par défaut 3000 . Ici, nous avons passé l'argument -b 0.0.0.0 afin d'accéder à l'application Rails depuis n'importe quelle machine du réseau local.

Vous pouvez accéder à votre page de test Rails sur votre navigateur Web en accédant à l'URL :http://ip-address:3000

Si vous souhaitez utiliser un port différent, passez -p drapeau avec le numéro de port comme ci-dessous :

$ rails server -b 0.0.0.0 -p 8080

Maintenant, vous pouvez accéder à votre application Rails en utilisant cette URL :http://ip-address:8080

3. Supprimer l'application Rails

Si vous avez utilisé la base de données par défaut qui est SQLite, vous pouvez supprimer l'application Rails en supprimant simplement son répertoire d'application.

$ rm -fr ostechnixapp

Si vous avez utilisé MySQL, vous devez d'abord supprimer les bases de données associées de votre application à l'aide de la commande :

$ rake db:drop

Puis supprimez le répertoire de l'application :

$ rm -fr ostechnixapp

Conclusion

Dans ce didacticiel, nous avons expliqué pourquoi nous devons utiliser des bases de données de modèles client/serveur pour notre application Rails et comment créer une application Rails avec une base de données MySQL. Nous avons également vu comment supprimer une application Rails.

Si plusieurs copies de l'application Rails s'exécutent en même temps, plusieurs applications et utilisateurs utilisant la même base de données, vous devriez vous éloigner de Sqlite et essayer des bases de données modèles client/serveur comme MySQL. Si vous voulez un stockage de données local pour des applications individuelles, Sqlite est plus que suffisant.

Lire connexe :

  • Comment utiliser PostgreSQL avec l'application Ruby On Rails
  • Configurer la connexion à la base de données à l'aide de la variable d'environnement dans les rails

Linux
  1. Comment j'utilise Vagrant avec libvirt

  2. Comment créer une base de données dans MySQL avec MySQL Workbench

  3. Comment réinitialiser le mot de passe racine MySQL ou MariaDB

  4. Comment installer et utiliser MySQL sur Ubuntu 20.04

  5. Comment installer MySQL sur Ubuntu 22.04

Comment installer Ruby On Rails sous Linux

Comment utiliser PostgreSQL avec l'application Ruby On Rails

Comment réinitialiser le mot de passe root MySQL

Comment installer Ruby on Rails sur Ubuntu 20.04 avec RVM

Comment installer MySQL 8.0 sur Ubuntu 18.04

Comment installer Ruby On Rails sur Ubuntu 20.04 avec MySQL, Nginx, Passenger, SSL