So verwenden Sie MySQL mit Ihrer Ruby on Rails-Anwendung unter CentOS 7

Einführung

Ruby on Rails verwendet sqlite3 als Standarddatenbank, was in vielen Fällen sehr gut funktioniert, für Ihre Anwendung jedoch möglicherweise nicht ausreicht. Wenn Ihre Anwendung die Skalierbarkeit, Zentralisierung und Steuerung (oder eine andere Funktion) einer Client / Server-SQL-Datenbank erfordert, z. B. https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql -a-Vergleich-von-relationalen-Datenbank-Management-Systemen [PostgreSQL oder MySQL], müssen Sie ein paar zusätzliche Schritte ausführen, um es zum Laufen zu bringen.

In diesem Tutorial erfahren Sie, wie Sie eine Ruby on Rails-Entwicklungsumgebung einrichten, mit der Ihre Anwendungen eine MySQL-Datenbank auf einem CentOS 7- oder RHEL-Server verwenden können. Zunächst wird beschrieben, wie MySQL und der MySQL-Adapter gem installiert werden. Anschließend zeigen wir Ihnen, wie Sie eine Rails-Anwendung erstellen, die MySQL als Datenbankserver verwendet.

Voraussetzungen

Für dieses Tutorial ist eine funktionierende Ruby on Rails-Entwicklungsumgebung erforderlich. Wenn Sie das noch nicht haben, können Sie dem Tutorial in diesem Link folgen: https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-centos -7 [So installieren Sie Ruby on Rails mit rbenv unter CentOS 7].

Sie müssen auch Zugriff auf einen Superuser oder ein "+ sudo +" - Konto haben, damit Sie die MySQL-Datenbanksoftware installieren können.

In diesem Handbuch wird auch davon ausgegangen, dass SELinux deaktiviert ist.

Sobald Sie fertig sind, installieren wir MySQL.

Installieren Sie MySQL

Wenn Sie MySQL noch nicht installiert haben, machen wir das jetzt. CentOS verwendet MariaDB als Ersatz für MySQL.

Installieren Sie MySQL und seine Entwicklungsbibliotheken:

sudo yum install mariadb-server mariadb-devel

Nach Abschluss der Installation müssen wir MySQL mit dem folgenden Befehl starten:

sudo systemctl start mariadb

Nachdem unsere MySQL-Datenbank ausgeführt wird, möchten wir ein einfaches Sicherheitsskript ausführen, das einige gefährliche Standardeinstellungen entfernt und den Zugriff auf unser Datenbanksystem ein wenig sperrt. Starten Sie das interaktive Skript, indem Sie Folgendes ausführen:

sudo mysql_secure_installation

In der Eingabeaufforderung werden Sie nach Ihrem aktuellen Root-Passwort gefragt. Da Sie gerade MySQL installiert haben, werden Sie höchstwahrscheinlich keine haben. Lassen Sie das Feld leer, indem Sie die Eingabetaste drücken. Anschließend werden Sie gefragt, ob Sie ein Root-Passwort festlegen möchten. Fahren Sie fort und drücken Sie die Eingabetaste und geben Sie das Passwort ein. Bei den restlichen Fragen drücken Sie einfach bei jeder Eingabeaufforderung die Eingabetaste, um die Standardwerte zu akzeptieren. Dadurch werden einige Beispielbenutzer und -datenbanken entfernt, Remotestammanmeldungen deaktiviert und diese neuen Regeln geladen, sodass MySQL die von uns vorgenommenen Änderungen sofort berücksichtigt.

Das letzte, was Sie tun möchten, ist MariaDB zu aktivieren, um beim Booten zu starten. Verwenden Sie dazu den folgenden Befehl:

sudo systemctl enable mariadb.service

MySQL ist jetzt installiert, aber das MySQL-Gem muss noch installiert werden.

Installieren Sie MySQL Gem

Bevor Ihre Rails-Anwendung eine Verbindung zu einem MySQL-Server herstellen kann, müssen Sie den MySQL-Adapter installieren. Das Gem + mysql2 + bietet diese Funktionalität.

Installieren Sie als Rails-Benutzer das Gem + mysql2 + wie folgt:

gem install mysql2

Jetzt können Ihre Rails-Anwendungen MySQL-Datenbanken verwenden.

Neue Rails-Anwendung erstellen

Erstellen Sie eine neue Rails-Anwendung in Ihrem Home-Verzeichnis. Verwenden Sie die Option "+ -d mysql +", um MySQL als Datenbank festzulegen, und achten Sie darauf, das hervorgehobene Wort durch Ihren Anwendungsnamen zu ersetzen:

cd ~
rails new  -d mysql

Wechseln Sie dann in das Anwendungsverzeichnis:

cd

Im nächsten Schritt konfigurieren Sie die Datenbankverbindung der Anwendung.

Datenbankverbindung konfigurieren

Wenn Sie die Anweisungen zur Installation von MySQL in diesem Tutorial befolgt haben, legen Sie ein Kennwort für den Root-Benutzer von MySQL fest. Das MySQL-Root-Login wird verwendet, um die Test- und Entwicklungsdatenbank Ihrer Anwendung zu erstellen.

Öffnen Sie die Datenbankkonfigurationsdatei Ihrer Anwendung in Ihrem bevorzugten Texteditor. Wir verwenden vi:

vi config/database.yml

Suchen Sie im Abschnitt "+ default +" die Zeile "password:" und fügen Sie das Kennwort am Ende hinzu. Es sollte ungefähr so ​​aussehen (ersetzen Sie den markierten Teil durch Ihr MySQL-Root-Passwort):

password:

Speichern und schließen.

Erstellen Sie Anwendungsdatenbanken

Erstellen Sie Ihre Anwendungs-Entwicklungs- und -Test-Datenbanken mit diesem Rake-Befehl:

rake db:create

Dadurch werden zwei Datenbanken auf Ihrem MySQL-Server erstellt. Wenn der Name Ihrer Anwendung beispielsweise "Anwendungsname" lautet, werden Datenbanken mit den Namen "Anwendungsname_Entwicklung" und "Anwendungsname_Test" erstellt.

Wenn Sie eine Fehlermeldung erhalten, die besagt, dass der Zugriff für den Benutzer "root" @ "localhost" verweigert wurde (mit dem Passwort: JA), geben Sie das root-Passwort für Ihre MySQL-Installation ein. Drücken Sie zum Beenden "+ Strg-c ". Überprüfen Sie dann den vorherigen Unterabschnitt (Configure Database Connection), um sicherzustellen, dass das Kennwort in ` database.yml +` korrekt ist. Versuchen Sie erneut, die Anwendungsdatenbanken zu erstellen, nachdem Sie sichergestellt haben, dass das Kennwort korrekt ist.

Konfiguration testen

Am einfachsten können Sie testen, ob Ihre Anwendung die MySQL-Datenbank verwenden kann, indem Sie versuchen, sie auszuführen.

Verwenden Sie zum Ausführen der Entwicklungsumgebung (Standardeinstellung) beispielsweise den folgenden Befehl:

rails server

Dadurch wird Ihre Rails-Anwendung auf Ihrem lokalen Host auf Port 3000 gestartet.

Wenn sich Ihre Rails-Anwendung auf einem Remote-Server befindet und Sie über einen Webbrowser darauf zugreifen möchten, können Sie sie auf einfache Weise an die öffentliche IP-Adresse Ihres Servers binden. Suchen Sie zuerst die öffentliche IP-Adresse Ihres Servers und verwenden Sie sie dann mit dem Befehl + rail server + wie folgt:

rails server --binding=

Jetzt sollten Sie in einem Webbrowser über die öffentliche IP-Adresse des Servers auf Port 3000 auf Ihre Rails-Anwendung zugreifen können:

http://:3000

Wenn die Ruby on Rails-Seite "Willkommen an Bord" angezeigt wird, ist Ihre Anwendung ordnungsgemäß konfiguriert und mit der MySQL-Datenbank verbunden.

Fazit

Jetzt können Sie mit der Entwicklung Ihrer Ruby on Rails-Anwendung beginnen. Als Datenbank dient MySQL unter CentOS 7!

Viel Glück!