Приложение Ruby on Rails на MySQL в CentOS 7

Ruby on Rails по умолчанию использует базу данных sqlite3, которая не всегда справляется с нагрузкой приложения. Если приложение нуждается в масштабировании и централизации, нужно настроить поддержку системы управления базами данных (СУБД) MySQL.

В данном руководстве показано, как создать окружение разработки Ruby on Rails, поддерживающее MySQL, на сервере CentOS 7 или RHEL. Руководство охватывает установку MySQL и gem-а MySQL adapter, а также создание rails-приложения на сервере баз данных MySQL.

Требования

Для выполнения руководства нужно рабочее окружение разработки Ruby on Rails. Подробнее об этом можно узнать в этой статье.

Также нужно иметь привилегии суперпользователя – доступ к sudo, – без которых невозможно установить MySQL.

Кроме того, подразумевается, что система SELinux отключена.

Установка MySQL

Если СУБД MySQL не была установлена ранее, установите её сейчас. CentOS использует MariaDB в качестве замены MySQL.

Для установки MySQL и библиотек разработки используйте:

sudo yum install mariadb-server mariadb-devel

После завершения установки запустите MySQL при помощи следующей команды:

sudo systemctl start mariadb

После запуска MySQL запустите простой скрипт безопасности, который удалит некоторые настройки по умолчанию и несколько усложнит доступ к системе баз данных. Запустите интерактивный скрипт с помощью команды:

sudo mysql_secure_installation

Скрипт запросит текущий root-пароль. Поскольку это свежая установка MySQL, такого пароля ещё нет, потому просто нажмите enter, чтобы продолжить. Затем скрипт спросит, нужно ли создать такой пароль; снова нажмите Enter и установите root-пароль. Остальные вопросы можно пропустить, нажав Enter, что установит стандартные настройки. Это удалит образцы пользователей и баз данных, отключит удалённый root-доступ и загрузит новые правила в настройки MySQL, благодаря чему они сразу же вступят в силу.

Осталось только включить автозапуск MariaDB при загрузке системы. Для этого используйте:

sudo systemctl enable mariadb.service

Установка адаптера MySQL

Чтобы Rails-приложение могло подключиться к серверу MySQL, установите адаптер MySQL – эта функция предоставляется gem-ом mysql2.

Установите mysql2 как пользователь Rails:

gem install mysql2

Теперь приложение Rails поддерживает базу данных MySQL.

Создание приложения Rails

Создайте новое приложение Rails в домашнем каталоге. Используйте опцию -d mysql, чтобы в качестве БД использовать MySQL, и не забудьте указать имя своего приложения вместо appname:

cd ~
rails new appname -d mysql

Перейдите в каталог приложения:

cd appname

Теперь нужно настроить взаимодействие приложения и БД.

Настройка подключения к базе данных MySQL

Если вы устанавливали MySQL согласно инструкциям этого руководства, вы создали пароль для root-пользователя MySQL. Это пригодится для создания баз данных тестирования и разработки.

Откройте конфигурационный файл базы данных приложения в текстовом редакторе (в данном случае это vi):

vi config/database.yml

В разделе default найдите строку password и укажите в ней свой root-пароль. Строка должна выглядеть так:

password: mysql_root_password

Сохраните изменения и закройте файл.

Создание баз данных для приложения

Теперь создайте для приложения базы данных по имени development и test. Для этого используйте:

rake db:create

Эта команда создаст две базы данных на сервере MySQL. К примеру, если приложение называется app, команда создаст БД по имени app_development и app_test.

При возникновении ошибки «Access denied for user ‘root’@’localhost’ (using password: YES). Please provide the root password for your MySQL installation» нажмите Ctrl-c, чтобы выйти. Затем вернитесь к предыдущему разделу руководства и убедитесь, что в database.yml указан правильный пароль; после этого попробуйте снова создать базы данных.

Тестирование настройки

Самый простой способ убедиться в том, что приложение поддерживает MySQL – запустить приложение. К примеру, чтобы запустить стандартное окружение разработки, используйте команду:

rails server

Это запустит приложение на локальном хосте на порт 3000.

Если приложение Rails находится на удалённом сервере, и вы хотите открыть его в браузере, проще всего привязать его к внешнему IP-адресу сервера. Сначала узнайте внешний IP сервера, а затем используйте команду rails server:

rails server --binding=server_public_IP

Теперь приложение можно открыть в браузере по ссылке:

http://server_public_IP:3000

На экране должна появиться приветственная страница Welcome aboard; это значит, что приложение настроено корректно и теперь поддерживает базу данных MySQL.

Итоги

Теперь можно приступать к разработке приложения Ruby on Rails с базой данных MySQL.

Tags: , , , , , , ,

Добавить комментарий