Приложение Ruby on Rails на MySQL в CentOS 7
Centos, mySQL, Ruby | Комментировать запись
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: CentOS, CentOS 7, MariaDB, MySQL, Rails, RHEL, Ruby, Ruby on Rails