GNU/Linux >> Znalost Linux >  >> Linux

Jak používat MySQL s aplikací Ruby On Rails

Ruby on Rails používá SQLite3 jako svou výchozí databázi. I když Sqlite funguje skvěle s Rails, někdy nemusí být pro vaši aplikaci Rails dostačující. Pokud chcete škálovatelnost, souběžnost, centralizaci a kontrolu, možná budete chtít vyzkoušet robustnější databáze jako MySQL nebo PostgreSQL. V této příručce uvidíme, jak používat MySQL s aplikací Ruby on Rails v Ubuntu Linux.

1. Nainstalujte MySQL v Ubuntu

MySQL je k dispozici ve výchozích repozitářích většiny distribucí Linuxu a Unixu.

Chcete-li nainstalovat MySQL na Debian, Ubuntu a jeho deriváty, spusťte:

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

Soubor libmysqlclient-dev balíček poskytuje potřebné soubory ke kompilaci mysql2 klenot. Ruby on Rails používá mysql2 gem pro připojení k MySQL při nastavování aplikace Rails.

1.1. Nastavte heslo kořenového adresáře MySQL

Dále nastavte heslo uživatele root MySQL spuštěním následujícího příkazu:

$ sudo mysql_secure_installation

Zadejte "y" pro nastavení komponenty 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

Vyberte úroveň ověření hesla. Dostupná ověření hesla jsou nízká , střední a silný . Zde volím nízkoúrovňové ověření hesla zadáním nuly (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

Dále dvakrát zadejte heslo root MySQL. Heslo by mělo být silné a mělo by mít minimálně 8 znaků. Stiskněte Y pokračovat:

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

Dále vám bude položena řada otázek. Zadejte y a u každé otázky stiskněte ENTER. Toto odebere anonymního uživatele, zakáže vzdálené přihlášení uživatele root a odstraní testovací databázi.

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!

Hotovo! Nastavili jsme heslo uživatele root MySQL.

1.2. Nainstalujte ovladač MySQL

Nainstalujte ovladač MySQL s názvem mysql2 drahokam, který umožňuje aplikaci Rails připojit se k databázi MySQL.

$ gem install mysql2

Vše hotovo! Aplikace Rails se nyní mohou připojit k databázovému serveru MySQL.

Pojďme vpřed a vytvořte novou aplikaci Rails s databází MySQL.

2. Používejte MySQL s aplikací Ruby on Rails

Chcete-li vytvořit novou aplikaci Rails s názvem ostechnixapp a použít databázi MySQL jako výchozí databázi, spusťte:

$ rails new ostechnixapp -d mysql

Tím se vytvoří aplikace Rails s názvem ostechnixapp v adresáři s názvem ostechnixapp a nainstalujte závislosti drahokamů, které jsou již zmíněny v Gemfile pomocí bundle install .

Po vytvoření ostechnixapp aplikace, přepněte do jejího adresáře:

$ cd ostechnixapp/

Upravte konfigurační soubor databáze aplikace:

$ vi config/database.yml

Ve výchozí sekci nahraďte root MySQL uživatelské heslo s tím, které jste vytvořili dříve:

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

Uložte a zavřete soubor.

Nyní vytvořte novou databázi pro vaši aplikaci Rails pomocí příkazu:

$ rake db:create

Tím vytvoříte dvě databáze s názvem vaší aplikace Rails. Pokud je například název aplikace ostechnixapp, vytvoří se ostechnixapp_development a ostechnixapp_test .

Můžete ověřit, zda jsou databáze úspěšně vytvořeny také z MySQL.

Přihlaste se do MySQL jako root uživatel:

$ mysql -u root -p

Ověřte, zda jsou databáze vytvořeny zadáním následujícího příkazu:

mysql> show databases;

Ukázkový výstup:

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

Ukončete výzvu MySQL.

Nyní spusťte webový server Rails pomocí příkazu:

$ rails server -b 0.0.0.0

Tím se spustí vaše aplikace Rails na výchozím portu 3000 . Zde jsme předali argument -b 0.0.0.0 za účelem přístupu k aplikaci Rails z libovolného počítače v místní síti.

Ke své testovací stránce Rails se dostanete ve webovém prohlížeči tak, že přejdete na adresu URL:http://ip-address:3000

Pokud chcete použít jiný port, předejte -p příznak spolu s číslem portu, jak je uvedeno níže:

$ rails server -b 0.0.0.0 -p 8080

Nyní můžete přistupovat ke své aplikaci Rails pomocí této adresy URL:http://ip-address:8080

3. Smazat aplikaci Rails

Pokud jste použili výchozí databázi, kterou je SQLite, můžete aplikaci Rails smazat jednoduchým smazáním jejího adresáře aplikace.

$ rm -fr ostechnixapp

Pokud jste používali MySQL, musíte nejprve zrušit související databáze vaší aplikace pomocí příkazu:

$ rake db:drop

A poté smažte adresář aplikace:

$ rm -fr ostechnixapp

Závěr

V tomto tutoriálu jsme diskutovali, proč potřebujeme pro naši aplikaci Rails používat modelové databáze klient/server a jak vytvořit aplikaci Rails s databází MySQL. Také jsme viděli, jak odstranit aplikaci Rails.

Pokud běží několik kopií aplikace Rails současně, několik aplikací a uživatelů používá stejnou databázi, měli byste se od Sqlite odklonit a vyzkoušet modelové databáze klient/server, jako je MySQL. Pokud chcete lokální úložiště dat pro jednotlivé aplikace, Sqlite je více než dostačující.

Související čtení:

  • Jak používat PostgreSQL s aplikací Ruby On Rails
  • Konfigurace připojení k databázi pomocí proměnné prostředí v Rails

Linux
  1. Jak resetovat kořenové heslo MySQL nebo MariaDB

  2. Jak nainstalovat MySQL na CentOS 7.x?

  3. Jak zkontrolovat heslo v Linuxu?

  1. Jak používám Vagrant s libvirt

  2. Jak vytvořit databázi v MySQL pomocí MySQL Workbench

  3. Jak nainstalovat a používat MySQL na Ubuntu 20.04

  1. Vytvořte linuxovou desktopovou aplikaci s Ruby

  2. Jak obnovit heslo Windows pomocí Linuxu

  3. Jak nainstalovat MySQL na Ubuntu 22.04