GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar MySQL con la aplicación Ruby on Rails

Rubí sobre rieles utiliza SQLite3 como su base de datos predeterminada. Si bien Sqlite funciona muy bien con Rails, algunas veces puede no ser suficiente para su aplicación Rails. Si desea escalabilidad, concurrencia, centralización y control, puede probar bases de datos más robustas como MySQL o PostgreSQL. En esta guía, veremos cómo usar MySQL con la aplicación Ruby on Rails en Ubuntu Linux.

1. Instalar MySQL en Ubuntu

MySQL está disponible en los repositorios predeterminados de la mayoría de las distribuciones de Linux y Unix.

Para instalar MySQL en Debian, Ubuntu y sus derivados, ejecute:

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

El libmysqlclient-dev El paquete proporciona los archivos necesarios para compilar mysql2 joya. Ruby on Rails usa mysql2 gem para conectarse a MySQL cuando configura una aplicación Rails.

1.1. Configurar la contraseña raíz de MySQL

A continuación, configure la contraseña de usuario raíz de MySQL ejecutando el siguiente comando:

$ sudo mysql_secure_installation

Introduzca "y" para configurar el componente VALIDAR CONTRASEÑA:

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

Elija el nivel de validación de la contraseña. Las validaciones de contraseña disponibles son bajas , medio y fuerte . Aquí, elijo la validación de contraseña de bajo nivel ingresando cero (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

Luego, ingrese la contraseña de MySQL Root dos veces. La contraseña debe ser segura y debe tener un mínimo de 8 caracteres. Presiona Y para continuar:

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

A continuación, se le hará una serie de preguntas. Escriba y y presione ENTER para cada pregunta. Esto eliminará al usuario anónimo, no permitirá que el usuario raíz inicie sesión de forma remota y eliminará la base de datos de prueba.

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!

¡Hecho! Hemos configurado la contraseña del usuario root de MySQL.

1.2. Instale el controlador MySQL

Instale el controlador MySQL llamado mysql2 gema que permite que la aplicación Rails se conecte a la base de datos MySQL.

$ gem install mysql2

¡Todo listo! Las aplicaciones Rails ahora pueden conectarse al servidor de base de datos MySQL.

Avancemos y creemos una nueva aplicación Rails con base de datos MySQL.

2. Usar MySQL con la aplicación Ruby on Rails

Para crear una nueva aplicación Rails llamada ostechnixapp y use la base de datos MySQL como su base de datos predeterminada, ejecute:

$ rails new ostechnixapp -d mysql

Esto creará una aplicación Rails llamada ostechnixapp en un directorio llamado ostechnixapp e instale las dependencias de gemas que ya se mencionan en Gemfile usando bundle install .

Después de crear la ostechnixapp aplicación, cambie a su directorio:

$ cd ostechnixapp/

Edite el archivo de configuración de la base de datos de la aplicación:

$ vi config/database.yml

En la sección predeterminada, reemplace MySQL root contraseña de usuario con la que creó anteriormente:

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

Guarde y cierre el archivo.

Ahora cree la nueva base de datos para su aplicación Rails usando el comando:

$ rake db:create

Esto creará dos bases de datos con el nombre de su aplicación Rails. Por ejemplo, si el nombre de la aplicación es ostechnixapp, creará ostechnixapp_development y ostechnixapp_test .

También puede verificar si las bases de datos se crearon correctamente desde MySQL.

Inicie sesión en MySQL como root usuario:

$ mysql -u root -p

Verifique si las bases de datos se crean ingresando el siguiente comando:

mysql> show databases;

Salida de muestra:

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

Salga del indicador de MySQL.

Ahora inicie su servidor web Rails usando el comando:

$ rails server -b 0.0.0.0

Esto iniciará su aplicación Rails en el puerto predeterminado 3000 . Aquí, pasamos el argumento -b 0.0.0.0 para acceder a la aplicación Rails desde cualquier máquina en la red de área local.

Puede acceder a su página de prueba de Rails en su navegador web navegando a la URL:http://ip-address:3000

Si desea utilizar un puerto diferente, pase -p marca junto con el número de puerto como se muestra a continuación:

$ rails server -b 0.0.0.0 -p 8080

Ahora puede acceder a su aplicación Rails utilizando esta URL:http://ip-address:8080

3. Eliminar la aplicación Rails

Si ha utilizado la base de datos predeterminada que es SQLite, puede eliminar la aplicación Rails simplemente eliminando su directorio de aplicaciones.

$ rm -fr ostechnixapp

Si usó MySQL, primero debe eliminar las bases de datos relacionadas de su aplicación usando el comando:

$ rake db:drop

Y luego elimine el directorio de la aplicación:

$ rm -fr ostechnixapp

Conclusión

En este tutorial, discutimos por qué necesitamos usar bases de datos modelo cliente/servidor para nuestra aplicación Rails y cómo crear una aplicación Rails con una base de datos MySQL. También hemos visto cómo eliminar una aplicación de Rails.

Si varias copias de la aplicación Rails se ejecutan al mismo tiempo, varias aplicaciones y usuarios usan la misma base de datos, debe alejarse de Sqlite y probar bases de datos modelo cliente/servidor como MySQL. Si desea almacenamiento local de datos para aplicaciones individuales, Sqlite es más que suficiente.

Lectura relacionada:

  • Cómo usar PostgreSQL con la aplicación Ruby on Rails
  • Configurar la conexión de la base de datos usando la variable de entorno en Rails

Linux
  1. Cómo uso Vagrant con libvirt

  2. Cómo restablecer la contraseña raíz de MySQL o MariaDB

  3. Cómo instalar y usar MySQL en Ubuntu 20.04

  4. ¿Cómo instalar MySQL en CentOS 7.x?

  5. ¿Cómo comprobar la contraseña con Linux?

Cómo instalar Ruby On Rails en Linux

Cómo usar PostgreSQL con la aplicación Ruby on Rails

Cómo restablecer la contraseña de root de MySQL

Cómo instalar Ruby on Rails en Ubuntu 20.04 con RVM

Cómo instalar MySQL 8.0 en Ubuntu 18.04

Cómo instalar Ruby On Rails en Ubuntu 20.04 con MySQL, Nginx, Passenger, SSL