Установка MySQL в Rails 3 на Ubuntu 11.04
В комментариях к одной из предыдущих статей я взял на себя смелость пообещать, что расскажу, как запустить Rails 3 с возможностью использовать MySQL. Ну что ж, назвался груздем — полезай в лукошко! (-:
Приступим. Для начала перейдём в директорию, где у нас хранятся проекты, с которыми будем работать:
1. $ cd ~/rails/
Создадим каркас нового приложения, но уже с поддержкой MySQL, а не sqllite, которая по умолчанию.
2. $ rails new mysql_app -d mysql
Если посмотреть Gemfile в директории созданного приложения, то будет видно изменение: gem ‘mysql2′ вместо gem ‘sqlite3′. Ключ «-d» указывает, какую БД использовать.
Теперь необходимо установить недостающие gem-ы:
3. $ bundle install
Но опять с ходу ничего не получилось лично у меня. Если Вы раньше производили какие-то дополнительные настройки системы, то у Вас может и не будет данной ошибки. Но в моём случае, как логично предположить, ругается на отсутствие в системе MySQL в принципе:
Поэтому необходимо её установить.
Ставим MySQL. В терминале:
4. $ sudo apt-get install libmysql-ruby libmysqlclient-dev mysql-client mysql-server
Во время установки система запросит ввод пароль root-а для администратора БД. Не забудьте его, он ещё пригодится. Обращаю Ваше внимание, что не стоит его делать цифровым! Я, по наивности своей, думаю, что раз система не боевая, всё только для тестирования, то и пароль «1234567890″ вполне себе сойдёт. Но не тут-то было! Уже потом, после всех установок выскакивает ошибка: TypeError can’t convert Fixnum into String. Так что не повторяйте мои ошибки (-:
Теперь можно повторить команду:
5. $ bundle install
Теперь всё должно пройти удачно: gem установится.
Теперь необходимо создать какую-то БД, с которой будет работать наше приложение. Выполним следующее:
6. $ mysqladmin -u root -p create newmysql
Просто вводим пароль и база будет создана. Теперь нам надо сообщить нашему приложению, какие настройки использовать для доступа к БД. Для это есть специальный файл конфигурации: config/database.yml. Открываете его в любом удобном редакторе и изменяете на введёные Ваши данные. Должно получиться что-то типа этого:
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: newmysql
pool: 5
username: root
password: megapassword
host: localhost
Соответственно Вы подставляете свои данные. Пытаемся запустить сервер, естественно, из директории приложения:
7. rails s
Только вот если Вы делали всё то же самое, что и я, то в консоли Вы увидите что-то типа этого:
WARNING: This version of mysql2 (0.3.2) doesn’t ship with the ActiveRecord adapter bundled anymore as it’s now part of Rails 3.1
WARNING: Please use the 0.2.x releases if you plan on using it in Rails <= 3.0.x
Сервер запустится, даже можно будет посмотреть картинку по адресу localhost:3000. Только вот незадача: если кликнуть ссылку в браузере About your application’s environment, то опять же будет видно, что не всё в порядке…
Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load — active_record/connection_adapters/mysql2_adapter)
ActiveRecord::ConnectionNotEstablished
В общем, приложение с БД не работает. Но не отчаивайтесь! Это исправимо. Если опять прочитать сообщение в логах от сервера, но уже внимательно, то станет ясно, что устанавливаемый по умолчанию gem mysql2 уже версии 0.3.2 является уже частью Rails 3.1, будущего релиза. Чтобы мы могли использовать этот gem в нашей версии «рельс», то надо установить gem версии 0.2.х. Ну что же, давайте сделаем это. Некоторые непродолжительные поиски в сети дали совет, что версия 0.2.7 вполне будет работоспособна. Для этого вносим изменения в Gemfile:
8. gem ‘mysql2′, «0.2.7″
После этого опять производим установку нужного gem-a:
9. $ bundle install
Лично у меня всё прошло успешно. Запускаем сервер:
10. $ rails s
В логах — никаких не нужных предупреждений, ничего подобного. По адресу localhost:3000 всё тоже красиво, а особенно надпись:
Database adapter: mysql2
Вот теперь наше приложение вполне работоспособно и с MySQL.
Удачи всем! (-:
Недавние записи
- Long time no see
- Ошибка при обновлении Meteor до версии 1.4.2
- Patch falcon для ruby-1.9.3-p327
- Ускоряем ruby и Rails
- Gem ‘seo_params’: определение основных параметров
- Отрицательный margin-top и Opera
- Rspec and Devise reset password
- Backbone.js: Views. Часть первая.
- Backbone.js: Models and Collections
- Backbone.js Routers
Май 12th, 2011 at 09:41
Большое вам спасибо:)Это наверное первый пост о том как установить MYSQL адаптер в Rails Благодарю!
Май 12th, 2011 at 09:47
По крайней мере я больше не находил:)
Май 12th, 2011 at 13:03
Искренне надеюсь, что в чём-то помог (-:
Июль 9th, 2011 at 10:03
Огромное спасибо !!!
Продолжайте даже с этим учебником не все в установке получалось пришлось комбинировать http://russian.railstutorial.org/chapters/beginning#sec:install_git
Надеюсь это будет кому-то полезно.
Удачи!!!
Июль 12th, 2011 at 22:04
только налакомлюсь с рельсами и вот какая проблема возникла, при запуске сервера выдает ощипку..
DEPRECATION WARNING: config.action_view.debug_rjs will be removed in 3.1, from 3.1 onwards you will need to install prototype-rails to continue to use RJS templates . (called from service at /home/username/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/webrick/httpserver.rb:111)
помогите разобраться.
спасибо.
Июль 13th, 2011 at 18:12
Попробуйте в файле config/environments/development.rb удалить строку:
config.action_view.debug_rjs = true
Июль 14th, 2011 at 16:01
Спасибо за разъяснение с версиями адаптера.
Август 11th, 2011 at 23:55
[...] Ресурс, який допоміг мені, в цьому питанні: Posted in Ruby On Rails Tags: Mysql, Mysql и Ruby On Rails 3, Ruby On Rails 3 « Підключаємо Xbox360 до монітора та аудіосистеми [...]
Ноябрь 17th, 2011 at 15:00
делал все как сказано) ввел пароль 123456 в настройки mysql и выдал ошибку:
TypeError can’t convert Fixnum into String.
сменил пароль на 1234, но ошибка не исчезла( в чем может быть проблема?
p.s.
rails 3.1.1rc3
ruby 1.9.2-p180
Ноябрь 17th, 2011 at 15:11
проблему решил, чтобы такая ошибка не вылетатала (может это особенность такая 3.1.1rc3), в database.yml пароль надо писать в «»
Июнь 4th, 2012 at 23:04
Спасибо, помогло!
Июль 17th, 2013 at 08:11
Последнее время я использую Valentina Studio для работы с MySQL на ubuntu. Очень хороший и бесплатный инструмент, рекомендую посмотреть.http://www.valentina-db.com/en/valentina-studio-overview