GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie MySQL mit der Ruby On Rails-Anwendung

Ruby on Rails verwendet SQLite3 als Standarddatenbank. Obwohl Sqlite hervorragend mit Rails funktioniert, reicht es manchmal für Ihre Rails-Anwendung nicht aus. Wenn Sie Skalierbarkeit, Parallelität, Zentralisierung und Kontrolle wünschen, sollten Sie robustere Datenbanken wie MySQL oder PostgreSQL ausprobieren. In diesem Handbuch erfahren Sie, wie Sie MySQL mit der Ruby on Rails-Anwendung in Ubuntu Linux verwenden.

1. Installieren Sie MySQL in Ubuntu

MySQL ist in den Standard-Repositories der meisten Linux- und Unix-ähnlichen Distributionen verfügbar.

Führen Sie Folgendes aus, um MySQL unter Debian, Ubuntu und seinen Derivaten zu installieren:

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

Die libmysqlclient-dev Paket stellt die notwendigen Dateien bereit, um mysql2 zu kompilieren Juwel. Ruby on Rails verwendet mysql2 gem, um eine Verbindung zu MySQL herzustellen, wenn Sie eine Rails-Anwendung einrichten.

1.1. Richten Sie das MySQL-Root-Passwort ein

Als nächstes richten Sie das MySQL-Root-Benutzerpasswort ein, indem Sie den folgenden Befehl ausführen:

$ sudo mysql_secure_installation

Geben Sie "y" ein um die Komponente VALIDATE PASSWORD einzurichten:

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

Wählen Sie die Ebene der Passwortvalidierung. Die verfügbaren Passwortvalidierungen sind niedrig , mittel und stark . Hier wähle ich die Low-Level-Passwortvalidierung durch Eingabe von Null (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

Geben Sie als Nächstes zweimal das MySQL-Root-Passwort ein. Das Passwort sollte stark sein und mindestens 8 Zeichen lang sein. Drücken Sie Y um fortzufahren:

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

Als nächstes werden Ihnen eine Reihe von Fragen gestellt. Geben Sie j ein und drücken Sie für jede Frage die EINGABETASTE. Dadurch wird der anonyme Benutzer entfernt, die Anmeldung des Root-Benutzers aus der Ferne verweigert und die Testdatenbank entfernt.

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!

Erledigt! Wir haben das Passwort des MySQL-Root-Benutzers festgelegt.

1.2. MySQL-Treiber installieren

Installieren Sie den MySQL-Treiber namens mysql2 Gem, das es der Rails-Anwendung ermöglicht, sich mit der MySQL-Datenbank zu verbinden.

$ gem install mysql2

Alles erledigt! Die Rails-Anwendungen können sich jetzt mit dem MySQL-Datenbankserver verbinden.

Lassen Sie uns weitermachen und eine neue Rails-Anwendung mit MySQL-Datenbank erstellen.

2. Verwenden Sie MySQL mit der Ruby on Rails-Anwendung

So erstellen Sie eine neue Rails-Anwendung namens ostechnixapp und die MySQL-Datenbank als Standarddatenbank verwenden, führen Sie Folgendes aus:

$ rails new ostechnixapp -d mysql

Dadurch wird eine Rails-Anwendung namens ostechnixapp in einem Verzeichnis namens ostechnixapp erstellt und installieren Sie die bereits in Gemfile erwähnten Gem-Abhängigkeiten mit bundle install .

Nach dem Erstellen der ostechnixapp Anwendung, wechseln Sie in ihr Verzeichnis:

$ cd ostechnixapp/

Bearbeiten Sie die Datenbankkonfigurationsdatei der Anwendung:

$ vi config/database.yml

Ersetzen Sie im Standardabschnitt MySQL root Benutzerkennwort mit dem zuvor erstellten:

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

Speichern und schließen Sie die Datei.

Erstellen Sie nun die neue Datenbank für Ihre Rails-Anwendung mit dem Befehl:

$ rake db:create

Dadurch werden zwei Datenbanken mit dem Namen Ihrer Rails-Anwendung erstellt. Wenn der Anwendungsname beispielsweise ostechnixapp lautet, wird ostechnixapp_development erstellt und ostechnixapp_test .

Sie können es auch überprüfen, ob die Datenbanken erfolgreich von MySQL erstellt wurden.

Melden Sie sich als root bei MySQL an Benutzer:

$ mysql -u root -p

Überprüfen Sie, ob die Datenbanken erstellt wurden, indem Sie den folgenden Befehl eingeben:

mysql> show databases;

Beispielausgabe:

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

Beenden Sie die MySQL-Eingabeaufforderung.

Starten Sie nun Ihren Rails-Webserver mit dem Befehl:

$ rails server -b 0.0.0.0

Dadurch wird Ihre Rails-Anwendung auf dem Standardport 3000 gestartet . Hier haben wir das Argument -b 0.0.0.0 übergeben um von jedem Computer im lokalen Netzwerk aus auf die Rails-Anwendung zugreifen zu können.

Sie können auf Ihre Rails-Testseite in Ihrem Webbrowser zugreifen, indem Sie zur URL navigieren:http://ip-address:3000

Wenn Sie einen anderen Port verwenden möchten, übergeben Sie -p Flag zusammen mit der Portnummer wie unten:

$ rails server -b 0.0.0.0 -p 8080

Jetzt können Sie über diese URL auf Ihre Rails-Anwendung zugreifen:http://ip-address:8080

3. Rails-Anwendung löschen

Wenn Sie die Standarddatenbank SQLite verwendet haben, können Sie die Rails-Anwendung löschen, indem Sie einfach ihr App-Verzeichnis löschen.

$ rm -fr ostechnixapp

Wenn Sie MySQL verwendet haben, müssen Sie zuerst die zugehörigen Datenbanken Ihrer Anwendung mit folgendem Befehl löschen:

$ rake db:drop

Und dann das Anwendungsverzeichnis löschen:

$ rm -fr ostechnixapp

Schlussfolgerung

In diesem Tutorial haben wir besprochen, warum wir Client/Server-Modelldatenbanken für unsere Rails-Anwendung verwenden müssen und wie man eine Rails-Anwendung mit MySQL-Datenbank erstellt. Wir haben auch gesehen, wie man eine Rails-Anwendung löscht.

Wenn mehrere Kopien der Rails-Anwendung gleichzeitig laufen, mehrere Anwendungen und Benutzer dieselbe Datenbank verwenden, sollten Sie sich von Sqlite entfernen und Client/Server-Modelldatenbanken wie MySQL ausprobieren. Wenn Sie eine lokale Datenspeicherung für einzelne Anwendungen wünschen, ist Sqlite mehr als ausreichend.

Verwandte Lektüre:

  • So verwenden Sie PostgreSQL mit der Ruby On Rails-Anwendung
  • Datenbankverbindung mit Umgebungsvariable in Rails konfigurieren

Linux
  1. Wie ich Vagrant mit libvirt verwende

  2. So erstellen Sie eine Datenbank in MySQL mit MySQL Workbench

  3. So setzen Sie das MySQL- oder MariaDB-Root-Passwort zurück

  4. So installieren und verwenden Sie MySQL unter Ubuntu 20.04

  5. So installieren Sie MySQL unter Ubuntu 22.04

So installieren Sie Ruby on Rails unter Linux

So verwenden Sie PostgreSQL mit der Ruby On Rails-Anwendung

So setzen Sie das MySQL-Root-Passwort zurück

So installieren Sie Ruby on Rails auf Ubuntu 20.04 mit RVM

So installieren Sie MySQL 8.0 auf Ubuntu 18.04

So installieren Sie Ruby On Rails unter Ubuntu 20.04 mit MySQL, Nginx, Passenger, SSL