Приложение Ruby on Rails на MySQL в Ubuntu 14.04
Ruby, Ubuntu | Комментировать запись
По умолчанию Ruby on Rails использует в качестве системы управления базами данных (СУБД) sqlite3. Но иногда эта Субд оказывается недостаточно производительной и не справляется с объёмными приложениями. Если приложение нуждается в масштабировании или централизации, рекомендуется использовать базу данных SQL (например, PostgreSQL или MySQL).
В данном руководстве показано, как настроить окружение разработки Ruby on Rails для использования MySQL на сервере Ubuntu 14.04, включая установку MySQL, установку специального gem-адаптера, а также создание приложения rails, использующего MySQL в качестве сервера баз данных.
Требования
Для выполнения руководства нужна среда разработки Ruby on Rails. Чтобы получить инструкции по созданию такого окружения, читайте это руководство.
Кроме того, для установки MySQL нужна учётная запись пользователя с доступом к sudo.
Установка MySQL
Если реляционная СУБД MySQL не была установлена ранее, установите её сейчас.
Обновите список пакетов системы:
sudo apt-get update
Затем установите MySQL и библиотеки разработки:
sudo apt-get install mysql-server mysql-client libmysqlclient-dev
Во время установки сервер попросит выбрать и подтвердить root-пароль MySQL.
После завершения установки нужно запустить несколько дополнительных команд для безопасной настройки окружения MySQL. Для начала создайте структуру каталогов базы данных для хранения информации:
sudo mysql_install_db
Затем запустите простой скрипт безопасности, который удалит некоторые рискованные стандартные настройки и заблокирует доступ к СУБД для отдельных пользователей.
sudo mysql_secure_installation
На данном этапе будет предложено ввести root-пароль MySQL. Затем программа спросит, нужно ли изменить пароль; чтобы оставить текущий пароль, введите n.
На остальные вопросы программы просто нажмите ENTER, чтобы установить стандартные настройки. При этом будут удалены образцы пользователей и примеры баз данных, удалённый root-логин будет отключён. После программа загрузит и активирует новые правила MySQL.
Теперь система управления базами данных MySQL успешно установлена.
Установка gem-а MySQL
Чтобы приложение Rails могло подключаться к серверу 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
Если вы следовали инструкциям по установке MySQL, приведённым в начале данного руководства, вы установили root-пароль для MySQL. Root-логин понадобится для создания тестовой БД и БД разработки (test и development соответственно).
Откройте конфигурационный файл базы данных приложения в любом удобном текстовом редакторе:
vi config/database.yml
В разделе default найдите строку “password:” и внесите в неё пароль. Она должна выглядеть так (вместо mysql_root_password укажите свой root-пароль):
password: mysql_root_password
Сохраните и закройте файл.
Создание баз данных приложения
Теперь создайте базы данных development и test, выполнив команду:
rake db:create
Эта команда создаст две базы данных на сервере MySQL. К примеру, если приложение называется appname, она создаст базы данных appname_development и appname_test.
При возникновении ошибки:
Access denied for user 'root'@'localhost' (using password: YES)
Please provide the root password for your MySQL installation
Нажмите Ctrl-c, чтобы выйти.
Затем вернитесь к предыдущему разделу руководства и убедитесь, что database.yml содержит правильный пароль. Затем попробуйте создать базы данных снова.
Тестирование
Попробуйте запустить приложение, чтобы убедиться, что настройка выполнена успешно.
К примеру, чтобы запустить стандартное окружение разработки, используйте команду:
rails server
Это запустит Rails-приложение на порт 3000 локального хоста.
Если приложение Rails находится на удалённом сервере и вы хотите получить к нему доступ в браузере, привяжите его к внешнему IP-адресу сервера. Для этого используйте следующую команду:
rails server --binding=server_public_IP
Теперь приложение доступно в браузере по следующей ссылке:
http://server_public_IP:3000
Если на экране появилась страница Welcome aboard, значит, настройка выполнена верно, всё работает должным образом.
Заключение
Теперь можно приступать к разработке приложения Ruby on Rails на основе надёжной и производительной базы данных MySQL, используя тестовое приложение в качестве шаблона.
Tags: MySQL, mysql2, Rails, Ruby, Ruby on Rails, SQLite, Ubuntu 14.04