RuntimeError з mysql2 і rails3 (пакет)


76

Я отримую цю помилку

`establish_connection': Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter) (RuntimeError)
  from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/activerecord-

Ось дамп цілої помилки та мого конфігураційного та gemfile.


Я зіткнувся з тією ж проблемою, і після кількох аналізів я можу успішно встановити mysql2 на вікна з rails3. Процес, якого я дотримувався, поданий у наступному дописі в блозі. kyybaventures.com/blog/installing-mysql2-gem-ruby-rails-windows Сподіваюся, корисно буде вирішити вищезазначену проблему. Mani
maniempire

Відповіді:


0

У мене була та ж помилка після оновлення з Ubuntu 11.10 до 12.04. Ось як я вирішив проблему:

gem uninstall mysql2
bundle

Я думаю, що ключовим фактором тут є "рідні розширення" - я гадаю, коли я встановлював останнє, я використовував іншу версію mysql.

Installing mysql2 (0.3.11) with native extensions

101

Я отримував ту ж помилку під час використання рейок 3.0.7 та mysql2 0.3.2. Рішення, яке я знайшов тут , полягає у використанні старої версії mysql2. Таким чином, відредагуйте ваш gemfile в

gem 'mysql2', '< 0.3'

і біжи

bundle install 

Це мені це виправили на Ubuntu 10.04 !! Якщо ви використовуєте RVM, ви також можете скористатися:, rvm gem install mysql2 --version=0.2.7і додати вищезазначений рядок до свого Gemfile.
TrinitronX

У мене була така сама проблема сьогодні, піднявшись до 3.1 і знову до 3.0.7. Це було виправлення.
Девід Ортінау,

2
за винятком тих версій mysql2, що мають проблеми з блокуванням на великих сайтах
Кевін

Те саме і тут - очевидно, mysql2> 3.0 не завантажує адаптер AR
пронто

3
Для отримання додаткового просвітлення див. Наступний випуск mysql2 на github, де сказано, що mysql 0.3.x працюватиме лише із рейками 3.1 і далі: github.com/brianmario/mysql2/issues/155
Тім Харпер,



6

Якщо ви використовуєте rvm і, можливо, додали mysql2 поза rvm, спробуйте виконати такі дії: Переконайтеся, що ваш Gemfile говорить:

gem 'mysql2'

або для Rails2.x:

gem 'mysql2', '~> 0.2.11'

тоді:

$ cd RAILS_ROOT
$ gem uninstall mysql2

Select gem to uninstall:
 1. mysql2-0.2.11
 2. mysql2-0.3.6
 3. All versions
> 3 # select "All versions"
$ rvm gemset install mysql2
$ bundle install

Тепер рейки повинні стартувати належним чином.


3

Це також виправило проблему, з якою я стикався:

Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter)

Насправді вам потрібно запустити: gem install mysql2 і додати gem до своєї конфігурації.


1
У мене була ця проблема, оскільки я встановлював самоцвіт mysql2 вручну. Потім я використав його, як ви сказали у gemfile, і запустив пакет встановлення. Він завантажився, але II отримав помилку підключення до mysql.sock. Отже, Я ПОТІМ запустив env ARCHFLAGS = "- arch i386" gem install mysql2 --version 0.2.6 - --ithith-mysql-config = / usr / local / mysql / bin / mysql_config (я на Mac pro) і здавалося, це вирішило мої проблеми. Ran rails s і гей престо .. Сподіваюся, це допомагає комусь іншому :)
fullstacklife

@dryprogrammers - Що я міг би дати вам 100+, будь ласка, вкажіть свій коментар як відповідь, це ДУЖЕ актуально і для Ubuntu 12-10. На повністю оновленому Ubuntu 12.10 Precise gitlab не встановлюватиметься. Шишка. Після багатьох годин (6-8) пошуків та випробувань багатьох речей, я спробував ваш хак Mac в крайньому випадку. LO AND BHOLD, наскільки мені (кашляю) взагалі взагалі не все одно до Mac ... це зробило це для мене зараз, я можу лягати спати ... щаслива! :)
stefgosselin

2

просто запустіть "gem install mysql", а також додайте те саме у gemfile та запустіть пакет. працював


це мене нагадало. Я запустив "sudo gem install mysql2", і це спрацювало. Дякую!
Томаш Іневич

1
Ручне керування дорогоцінними каменями поза Gemfile не рекомендується. Він схильний до проблем залежності для інших розробників або розгортання.
Гейб Мартін-Демпесі


1

Я новачок у ruby, rails та linux. Тож якщо це рішення не спрацювало, я не несу відповідальності :)

Крок 1:

sudo gem uninstall mysql2

Крок 2:

sudo gem install mysql -v 0.2.7

Почніть webrick, якщо та сама проблема все ще з'являється, перевстановіть рейки.

Це рішення працює для мене.


1
Чи не є загалом поганою практикою встановлювати самоцвіт за допомогою sudo? stackoverflow.com/questions/2119064/…
Tass

1

Те саме питання і для мене. Оновлено до Rails 3.1.rc4, а потім знижено до 3.0.3. Працював у мене.


0

станом на 0.3.0 та ActiveRecord 3.1 - адаптер ActiveRecord витягнутий із цього дорогоцінного каменя в саму ActiveRecord. Якщо вам потрібно використовувати mysql2 з версіями Rails <3.1, переконайтеся, що вкажіть gem "mysql2", "~> 0.2.7" у своєму Gemfile

відсутній файл ( no such file to load) можна знайти у попередніх версіях 0.3.0 mysql2.

цитується з документації mysql2

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.